diff --git a/common/arm/ih264_mem_fns_neon.s b/common/arm/ih264_mem_fns_neon.s index b9595d70..a8b25795 100644 --- a/common/arm/ih264_mem_fns_neon.s +++ b/common/arm/ih264_mem_fns_neon.s @@ -29,12 +29,7 @@ @ * Naveen SR @ * @ * @par List of Functions: -@ * - ih264_memcpy_mul_8_a9q() -@ * - ih264_memcpy_a9q() -@ * - ih264_memset_mul_8_a9q() -@ * - ih264_memset_a9q() @ * - ih264_memset_16bit_mul_8_a9q() -@ * - ih264_memset_a9q() @ * @ * @remarks @ * None @@ -42,164 +37,6 @@ @ ******************************************************************************* @* -@** -@******************************************************************************* -@* -@* @brief -@* memcpy of a 1d array -@* -@* @par Description: -@* Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes -@* -@* @param[in] pu1_dst -@* UWORD8 pointer to the destination -@* -@* @param[in] pu1_src -@* UWORD8 pointer to the source -@* -@* @param[in] num_bytes -@* number of bytes to copy -@* @returns -@* -@* @remarks -@* None -@* -@******************************************************************************* -@* -@void ih264_memcpy_mul_8(UWORD8 *pu1_dst, -@ UWORD8 *pu1_src, -@ UWORD32 num_bytes) -@**************Variables Vs Registers************************* -@ r0 => *pu1_dst -@ r1 => *pu1_src -@ r2 => num_bytes - -.text -.p2align 2 - - - .global ih264_memcpy_mul_8_a9q - -ih264_memcpy_mul_8_a9q: - -loop_neon_memcpy_mul_8: - @ Memcpy 8 bytes - vld1.8 d0, [r1]! - vst1.8 d0, [r0]! - - subs r2, r2, #8 - bne loop_neon_memcpy_mul_8 - bx lr - - - -@******************************************************************************* -@* -@void ih264_memcpy(UWORD8 *pu1_dst, -@ UWORD8 *pu1_src, -@ UWORD32 num_bytes) -@**************Variables Vs Registers************************* -@ r0 => *pu1_dst -@ r1 => *pu1_src -@ r2 => num_bytes - - - - .global ih264_memcpy_a9q - -ih264_memcpy_a9q: - subs r2, #8 - blt memcpy -loop_neon_memcpy: - @ Memcpy 8 bytes - vld1.8 d0, [r1]! - vst1.8 d0, [r0]! - - subs r2, #8 - bge loop_neon_memcpy - cmp r2, #-8 - bxeq lr - -memcpy: - add r2, #8 - -loop_memcpy: - ldrb r3, [r1], #1 - strb r3, [r0], #1 - subs r2, #1 - bne loop_memcpy - bx lr - - - - -@void ih264_memset_mul_8(UWORD8 *pu1_dst, -@ UWORD8 value, -@ UWORD32 num_bytes) -@**************Variables Vs Registers************************* -@ r0 => *pu1_dst -@ r1 => value -@ r2 => num_bytes - - - - - - .global ih264_memset_mul_8_a9q - -ih264_memset_mul_8_a9q: - -@ Assumptions: numbytes is either 8, 16 or 32 - vdup.8 d0, r1 -loop_memset_mul_8: - @ Memset 8 bytes - vst1.8 d0, [r0]! - - subs r2, r2, #8 - bne loop_memset_mul_8 - - bx lr - - - - -@void ih264_memset(UWORD8 *pu1_dst, -@ UWORD8 value, -@ UWORD8 num_bytes) -@**************Variables Vs Registers************************* -@ r0 => *pu1_dst -@ r1 => value -@ r2 => num_bytes - - - - .global ih264_memset_a9q - -ih264_memset_a9q: - subs r2, #8 - blt memset - vdup.8 d0, r1 -loop_neon_memset: - @ Memcpy 8 bytes - vst1.8 d0, [r0]! - - subs r2, #8 - bge loop_neon_memset - cmp r2, #-8 - bxeq lr - -memset: - add r2, #8 - -loop_memset: - strb r1, [r0], #1 - subs r2, #1 - bne loop_memset - bx lr - - - - @void ih264_memset_16bit_mul_8(UWORD16 *pu2_dst, @ UWORD16 value, @ UWORD32 num_words) diff --git a/common/armv8/ih264_mem_fns_neon_av8.s b/common/armv8/ih264_mem_fns_neon_av8.s index 4170037d..ee5f25e4 100644 --- a/common/armv8/ih264_mem_fns_neon_av8.s +++ b/common/armv8/ih264_mem_fns_neon_av8.s @@ -29,9 +29,6 @@ // * Naveen SR // * // * @par List of Functions: -// * - ih264_memcpy_av8() -// * - ih264_memcpy_mul_8_av8() -// * - ih264_memset_mul_8_av8() // * - ih264_memset_16bit_mul_8_av8() // * - ih264_memset_16bit_av8() // * @@ -43,168 +40,6 @@ .include "ih264_neon_macros.s" .text -///** -//******************************************************************************* -//* -//* @brief -//* memcpy of a 1d array -//* -//* @par Description: -//* Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes -//* -//* @param[in] pu1_dst -//* UWORD8 pointer to the destination -//* -//* @param[in] pu1_src -//* UWORD8 pointer to the source -//* -//* @param[in] num_bytes -//* number of bytes to copy -//* @returns -//* -//* @remarks -//* None -//* -//******************************************************************************* -//*/ -//void ih264_memcpy_mul_8(UWORD8 *pu1_dst, -// UWORD8 *pu1_src, -// UWORD32 num_bytes) -//**************Variables Vs Registers************************* -// x0 => *pu1_dst -// x1 => *pu1_src -// w2 => num_bytes - - - - - - .global ih264_memcpy_mul_8_av8 - -ENTRY ih264_memcpy_mul_8_av8 - -loop_neon_memcpy_mul_8: - // Memcpy 8 bytes - ld1 {v0.8b}, [x1], #8 - st1 {v0.8b}, [x0], #8 - - subs w2, w2, #8 - bne loop_neon_memcpy_mul_8 - EXIT_FUNC - ret - - - -//******************************************************************************* -//*/ -//void ih264_memcpy(UWORD8 *pu1_dst, -// UWORD8 *pu1_src, -// UWORD32 num_bytes) -//**************Variables Vs Registers************************* -// x0 => *pu1_dst -// x1 => *pu1_src -// w2 => num_bytes - - - - .global ih264_memcpy_av8 - -ENTRY ih264_memcpy_av8 - subs w2, w2, #8 - blt arm_memcpy -loop_neon_memcpy: - // Memcpy 8 bytes - ld1 {v0.8b}, [x1], #8 - st1 {v0.8b}, [x0], #8 - - subs w2, w2, #8 - bge loop_neon_memcpy - cmn w2, #8 - beq end_func1 - -arm_memcpy: - add w2, w2, #8 - -loop_arm_memcpy: - ldrb w3, [x1], #1 - strb w3, [x0], #1 - subs w2, w2, #1 - bne loop_arm_memcpy - EXIT_FUNC - ret -end_func1: - EXIT_FUNC - ret - - -//void ih264_memset_mul_8(UWORD8 *pu1_dst, -// UWORD8 value, -// UWORD32 num_bytes) -//**************Variables Vs Registers************************* -// x0 => *pu1_dst -// x1 => value -// x2 => num_bytes - - - .global ih264_memset_mul_8_av8 - -ENTRY ih264_memset_mul_8_av8 - -// Assumptions: numbytes is either 8, 16 or 32 - dup v0.8b, w1 -loop_memset_mul_8: - // Memset 8 bytes - st1 {v0.8b}, [x0], #8 - - subs w2, w2, #8 - bne loop_memset_mul_8 - - EXIT_FUNC - ret - - -//void ih264_memset(UWORD8 *pu1_dst, -// UWORD8 value, -// UWORD32 num_bytes) -//**************Variables Vs Registers************************* -// x0 => *pu1_dst -// w1 => value -// w2 => num_bytes - - - - .global ih264_memset_av8 - -ENTRY ih264_memset_av8 - subs w2, w2, #8 - blt arm_memset - dup v0.8b, w1 -loop_neon_memset: - // Memcpy 8 bytes - st1 {v0.8b}, [x0], #8 - - subs w2, w2, #8 - bge loop_neon_memset - cmn w2, #8 - beq end_func2 - -arm_memset: - add w2, w2, #8 - -loop_arm_memset: - strb w1, [x0], #1 - subs w2, w2, #1 - bne loop_arm_memset - EXIT_FUNC - ret -end_func2: - EXIT_FUNC - ret - - - - - //void ih264_memset_16bit_mul_8(UWORD16 *pu2_dst, // UWORD16 value, // UWORD32 num_words) diff --git a/common/ih264_mem_fns.c b/common/ih264_mem_fns.c index 66a0947d..332845ff 100644 --- a/common/ih264_mem_fns.c +++ b/common/ih264_mem_fns.c @@ -30,10 +30,6 @@ * ittiam * * @par List of Functions: - * ih264_memcpy - * ih264_memcpy_mul_8 - * ih264_memset - * ih264_memset_mul_8 * ih264_memset_16bit * ih264_memset_16bit_mul_8 * @@ -60,75 +56,6 @@ #include "ih264_debug.h" #include "ih264_mem_fns.h" -/** -******************************************************************************* -* -* @brief memcpy of a 8,16 or 32 bytes -* -* @par Description -* Does memcpy of 8bit data from source to destination for 8,16 or 32 number of -* bytes -* -* @param[in] pu1_dst -* pointer to the destination -* -* @param[in] pu1_src -* pointer to the source -* -* @param[in] num_bytes -* number of bytes to copy -* -* @returns none -* -* @remarks none -* -******************************************************************************* -*/ -void ih264_memcpy(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) -{ - memcpy(pu1_dst, pu1_src, num_bytes); -} - -void ih264_memcpy_mul_8(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) -{ - ASSERT(num_bytes % 8 == 0); - memcpy(pu1_dst, pu1_src, num_bytes); -} - -/** -******************************************************************************* -* -* @brief memset of a 8,16 or 32 bytes -* -* @par Description -* Does memset of 8bit data for 8,16 or 32 number of bytes -* -* @param[in] pu1_dst -* pointer to the destination -* -* @param[in] value -* value used for memset -* -* @param[in] num_bytes -* number of bytes to set -* -* @returns none -* -* @remarks none -* -******************************************************************************* -*/ -void ih264_memset(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) -{ - memset(pu1_dst, value, num_bytes); -} - -void ih264_memset_mul_8(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) -{ - ASSERT(num_bytes % 8 == 0); - memset(pu1_dst, value, num_bytes); -} - /** ******************************************************************************* * diff --git a/common/ih264_mem_fns.h b/common/ih264_mem_fns.h index a951b3c0..057ae31e 100644 --- a/common/ih264_mem_fns.h +++ b/common/ih264_mem_fns.h @@ -41,17 +41,6 @@ /*****************************************************************************/ /* Extern Function Declarations */ /*****************************************************************************/ -typedef void ih264_memcpy_ft(UWORD8 *pu1_dst, UWORD8 *pu1_src, - UWORD32 num_bytes); - -typedef void ih264_memcpy_mul_8_ft(UWORD8 *pu1_dst, UWORD8 *pu1_src, - UWORD32 num_bytes); - -typedef void ih264_memset_ft(UWORD8 *pu1_dst, UWORD8 value, - UWORD32 num_bytes); - -typedef void ih264_memset_mul_8_ft(UWORD8 *pu1_dst, UWORD8 value, - UWORD32 num_bytes); typedef void ih264_memset_16bit_ft(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words); @@ -60,32 +49,18 @@ typedef void ih264_memset_16bit_mul_8_ft(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words); /* C function declarations */ -ih264_memcpy_ft ih264_memcpy; -ih264_memcpy_mul_8_ft ih264_memcpy_mul_8; -ih264_memset_ft ih264_memset; -ih264_memset_mul_8_ft ih264_memset_mul_8; ih264_memset_16bit_ft ih264_memset_16bit; ih264_memset_16bit_mul_8_ft ih264_memset_16bit_mul_8; /* A9 Q function declarations */ -ih264_memcpy_ft ih264_memcpy_a9q; -ih264_memcpy_mul_8_ft ih264_memcpy_mul_8_a9q; -ih264_memset_ft ih264_memset_a9q; -ih264_memset_mul_8_ft ih264_memset_mul_8_a9q; ih264_memset_16bit_ft ih264_memset_16bit_a9q; ih264_memset_16bit_mul_8_ft ih264_memset_16bit_mul_8_a9q; /* AV8 function declarations */ -ih264_memcpy_ft ih264_memcpy_av8; -ih264_memcpy_mul_8_ft ih264_memcpy_mul_8_av8; -ih264_memset_ft ih264_memset_av8; -ih264_memset_mul_8_ft ih264_memset_mul_8_av8; ih264_memset_16bit_ft ih264_memset_16bit_av8; ih264_memset_16bit_mul_8_ft ih264_memset_16bit_mul_8_av8; /*SSSE3 Declarations*/ -ih264_memcpy_mul_8_ft ih264_memcpy_mul_8_ssse3; -ih264_memset_mul_8_ft ih264_memset_mul_8_ssse3; ih264_memset_16bit_mul_8_ft ih264_memset_16bit_mul_8_ssse3; #endif /* _IH264_MEM_FNS_H_ */ diff --git a/common/svc/isvc_mem_fns.h b/common/svc/isvc_mem_fns.h index 581e478b..58385cc4 100644 --- a/common/svc/isvc_mem_fns.h +++ b/common/svc/isvc_mem_fns.h @@ -42,7 +42,7 @@ typedef void *FT_MEM_ALLOC(UWORD32 u4_size); typedef void FT_MEM_FREE(void *pv_mem); -typedef void FT_MEMCPY(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); + typedef void FT_COPY_2D(UWORD8 *pu1_dst, WORD32 i4_dst_stride, UWORD8 *pu1_src, WORD32 i4_src_stride, WORD32 i4_blk_wd, WORD32 i4_blk_ht); @@ -50,7 +50,7 @@ typedef void FT_COPY_2D(UWORD8 *pu1_dst, WORD32 i4_dst_stride, UWORD8 *pu1_src, typedef void FT_MEMSET_2D(UWORD8 *pu1_dst, WORD32 i4_dst_stride, UWORD8 u1_val, WORD32 i4_blk_wd, WORD32 i4_blk_ht); -typedef void FT_MEMSET(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); + typedef void FT_MEMSET_16BIT(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words); @@ -64,8 +64,7 @@ typedef UWORD8 FT_NONZERO_CHECKER(UWORD8 *pu1_data, WORD32 i4_data_strd, UWORD32 UWORD32 u4_ht); /* C function declarations */ -extern FT_MEMCPY ih264_memcpy_mul_8; -extern FT_MEMSET ih264_memset_mul_8; + extern FT_MEMSET_16BIT ih264_memset_16bit; extern FT_MEMSET_16BIT ih264_memset_16bit_mul_8; extern FT_COPY_2D isvc_copy_2d; @@ -75,14 +74,12 @@ extern FT_MEM_ALLOC isvc_memory_alloc; extern FT_MEM_FREE isvc_memory_free; /* A9 Q function declarations */ -extern FT_MEMCPY ih264_memcpy_mul_8_a9q; -extern FT_MEMSET ih264_memset_mul_8_a9q; + extern FT_MEMSET_16BIT ih264_memset_16bit_a9q; extern FT_MEMSET_16BIT ih264_memset_16bit_mul_8_a9q; /* AV8 function declarations */ -extern FT_MEMCPY ih264_memcpy_mul_8_av8; -extern FT_MEMSET ih264_memset_mul_8_av8; + extern FT_MEMSET_16BIT ih264_memset_16bit_av8; extern FT_MEMSET_16BIT ih264_memset_16bit_mul_8_av8; @@ -90,8 +87,7 @@ extern FT_MEMSET_16BIT ih264_memset_16bit_mul_8_av8; extern FT_MEMSET_2D isvc_memset_2d_neon; /* SSSE3 variants */ -extern FT_MEMCPY ih264_memcpy_mul_8_ssse3; -extern FT_MEMSET ih264_memset_mul_8_ssse3; + extern FT_MEMSET_16BIT ih264_memset_16bit_mul_8_ssse3; extern FT_COPY_2D isvc_copy_2d_ssse3; diff --git a/common/x86/ih264_mem_fns_ssse3.c b/common/x86/ih264_mem_fns_ssse3.c index 8ca1f3e5..3b9617c1 100644 --- a/common/x86/ih264_mem_fns_ssse3.c +++ b/common/x86/ih264_mem_fns_ssse3.c @@ -50,85 +50,6 @@ #include -/** - ******************************************************************************* - * - * @brief - * memcpy of a 8,16 or 32 bytes - * - * @par Description: - * Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes - * - * @param[in] pu1_dst - * UWORD8 pointer to the destination - * - * @param[in] pu1_src - * UWORD8 pointer to the source - * - * @param[in] num_bytes - * number of bytes to copy - * @returns - * - * @remarks - * None - * - ******************************************************************************* - */ - - - - -void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) -{ - int col; - for(col = num_bytes; col >= 8; col -= 8) - { - __m128i src_temp16x8b; - src_temp16x8b = _mm_loadl_epi64((__m128i *)(pu1_src)); - pu1_src += 8; - _mm_storel_epi64((__m128i *)(pu1_dst), src_temp16x8b); - pu1_dst += 8; - } -} - -/** - ******************************************************************************* - * - * @brief - * memset of a 8,16 or 32 bytes - * - * @par Description: - * Does memset of 8bit data for 8,16 or 32 number of bytes - * - * @param[in] pu1_dst - * UWORD8 pointer to the destination - * - * @param[in] value - * UWORD8 value used for memset - * - * @param[in] num_bytes - * number of bytes to set - * @returns - * - * @remarks - * None - * - ******************************************************************************* - */ - - -void ih264_memset_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) -{ - int col; - __m128i src_temp16x8b; - src_temp16x8b = _mm_set1_epi8(value); - for(col = num_bytes; col >= 8; col -= 8) - { - _mm_storel_epi64((__m128i *)(pu1_dst), src_temp16x8b); - pu1_dst += 8; - } -} - /** ******************************************************************************* * diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c index f7beeef5..25f03daa 100644 --- a/decoder/ih264d_api.c +++ b/decoder/ih264d_api.c @@ -2436,7 +2436,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_qp_map = ps_h264d_dec_ip->pu1_8x8_blk_qp_map; ps_h264d_dec_op->u4_8x8_blk_qp_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_qp_map, ps_dec->u4_total_mbs << 2); } @@ -2444,7 +2444,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_type_map = ps_h264d_dec_ip->pu1_8x8_blk_type_map; ps_h264d_dec_op->u4_8x8_blk_type_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_mb_type_map, ps_dec->u4_total_mbs << 2); } @@ -2949,7 +2949,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_qp_map = ps_h264d_dec_ip->pu1_8x8_blk_qp_map; ps_h264d_dec_op->u4_8x8_blk_qp_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_qp_map, ps_dec->u4_total_mbs << 2); } @@ -2957,7 +2957,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_type_map = ps_h264d_dec_ip->pu1_8x8_blk_type_map; ps_h264d_dec_op->u4_8x8_blk_type_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_mb_type_map, ps_dec->u4_total_mbs << 2); } diff --git a/decoder/ih264d_structs.h b/decoder/ih264d_structs.h index d904caf0..dfa03d97 100644 --- a/decoder/ih264d_structs.h +++ b/decoder/ih264d_structs.h @@ -44,7 +44,6 @@ #include "ih264_weighted_pred.h" #include "ih264_trans_quant_itrans_iquant.h" #include "ih264_inter_pred_filters.h" -#include "ih264_mem_fns.h" #include "ih264_padding.h" #include "ih264_intra_pred_filters.h" #include "ih264_deblk_edge_filters.h" diff --git a/decoder/svc/isvcd_api.c b/decoder/svc/isvcd_api.c index 2befebdb..da19d281 100644 --- a/decoder/svc/isvcd_api.c +++ b/decoder/svc/isvcd_api.c @@ -4986,7 +4986,7 @@ WORD32 isvcd_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_qp_map = ps_h264d_dec_ip->pu1_8x8_blk_qp_map; ps_h264d_dec_op->u4_8x8_blk_qp_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_qp_map, ps_dec->u4_total_mbs << 2); } @@ -4994,7 +4994,7 @@ WORD32 isvcd_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_type_map = ps_h264d_dec_ip->pu1_8x8_blk_type_map; ps_h264d_dec_op->u4_8x8_blk_type_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_mb_type_map, ps_dec->u4_total_mbs << 2); } @@ -5637,7 +5637,7 @@ WORD32 isvcd_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ps_h264d_dec_op->pu1_8x8_blk_qp_map = ps_h264d_dec_ip->pu1_8x8_blk_qp_map; ps_h264d_dec_op->u4_8x8_blk_qp_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_qp_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_qp_map, ps_dec->u4_total_mbs << 2); } @@ -5646,7 +5646,7 @@ WORD32 isvcd_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_h264d_dec_op->pu1_8x8_blk_type_map = ps_h264d_dec_ip->pu1_8x8_blk_type_map; ps_h264d_dec_op->u4_8x8_blk_type_map_size = ps_dec->u4_total_mbs << 2; - ih264_memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, + memcpy(ps_h264d_dec_op->pu1_8x8_blk_type_map, ps_dec->as_buf_id_info_map[disp_buf_id].pu1_mb_type_map, ps_dec->u4_total_mbs << 2); } diff --git a/encoder/arm/ih264e_function_selector_a9q.c b/encoder/arm/ih264e_function_selector_a9q.c index 18063508..aa2c3c24 100644 --- a/encoder/arm/ih264e_function_selector_a9q.c +++ b/encoder/arm/ih264e_function_selector_a9q.c @@ -213,12 +213,6 @@ void ih264e_init_function_ptr_neon_a9q(codec_t *ps_codec) ps_codec->apf_compute_sad_16x16[1] = ime_compute_sad_16x16_fast_a9q; ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8_a9q; - /* memor handling operations */ - ps_codec->pf_mem_cpy = ih264_memcpy_a9q; - ps_codec->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_a9q; - ps_codec->pf_mem_set = ih264_memset_a9q; - ps_codec->pf_mem_set_mul8 = ih264_memset_mul_8_a9q; - /* sad me level functions */ for (i = 0; i < (MAX_PROCESS_CTXT); i++) { diff --git a/encoder/arm/ih264e_function_selector_av8.c b/encoder/arm/ih264e_function_selector_av8.c index 5ecd982e..ca5b3ebe 100644 --- a/encoder/arm/ih264e_function_selector_av8.c +++ b/encoder/arm/ih264e_function_selector_av8.c @@ -214,12 +214,6 @@ void ih264e_init_function_ptr_neon_av8(codec_t *ps_codec) ps_codec->apf_compute_sad_16x16[1] = ime_compute_sad_16x16_fast_av8; ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8_av8; - /* memor handling operations */ - ps_codec->pf_mem_cpy = ih264_memcpy_av8; - ps_codec->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_av8; - ps_codec->pf_mem_set = ih264_memset_av8; - ps_codec->pf_mem_set_mul8 = ih264_memset_mul_8_av8; - /* sad me level functions */ for(i = 0; i < (MAX_PROCESS_CTXT); i++) { diff --git a/encoder/arm/svc/isvce_function_selector_a9q.c b/encoder/arm/svc/isvce_function_selector_a9q.c index 6a1abb17..3d9a7afc 100644 --- a/encoder/arm/svc/isvce_function_selector_a9q.c +++ b/encoder/arm/svc/isvce_function_selector_a9q.c @@ -63,7 +63,6 @@ #include "isvc_structs.h" #include "isvc_trans_quant_itrans_iquant.h" #include "ih264_inter_pred_filters.h" -#include "ih264_mem_fns.h" #include "isvc_mem_fns.h" #include "ih264_padding.h" #include "ih264_intra_pred_filters.h" @@ -230,10 +229,6 @@ void isvce_init_function_ptr_neon_a9q(isvce_codec_t *ps_codec) ps_codec->apf_compute_sad_16x16[1] = ime_compute_sad_16x16_fast_a9q; ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8_a9q; - /* memor handling operations */ - ps_mem_fxns->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_a9q; - ps_mem_fxns->pf_mem_set_mul8 = ih264_memset_mul_8_a9q; - /* sad me level functions */ for(i = 0; i < (MAX_PROCESS_CTXT); i++) { diff --git a/encoder/arm/svc/isvce_function_selector_av8.c b/encoder/arm/svc/isvce_function_selector_av8.c index c517c03f..49c5ceae 100644 --- a/encoder/arm/svc/isvce_function_selector_av8.c +++ b/encoder/arm/svc/isvce_function_selector_av8.c @@ -63,7 +63,6 @@ #include "isvc_structs.h" #include "isvc_trans_quant_itrans_iquant.h" #include "ih264_inter_pred_filters.h" -#include "ih264_mem_fns.h" #include "isvc_mem_fns.h" #include "ih264_padding.h" #include "ih264_intra_pred_filters.h" @@ -230,10 +229,6 @@ void isvce_init_function_ptr_neon_av8(isvce_codec_t *ps_codec) ps_codec->apf_compute_sad_16x16[1] = ime_compute_sad_16x16_fast_av8; ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8_av8; - /* memor handling operations */ - ps_mem_fxns->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_av8; - ps_mem_fxns->pf_mem_set_mul8 = ih264_memset_mul_8_av8; - /* sad me level functions */ for(i = 0; i < (MAX_PROCESS_CTXT); i++) { diff --git a/encoder/ih264e_function_selector_generic.c b/encoder/ih264e_function_selector_generic.c index 2730900e..c675c439 100644 --- a/encoder/ih264e_function_selector_generic.c +++ b/encoder/ih264e_function_selector_generic.c @@ -218,12 +218,6 @@ void ih264e_init_function_ptr_generic(codec_t *ps_codec) ps_codec->apf_compute_sad_16x16[1] = ime_compute_sad_16x16_fast; ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8; - /* memory handling operations */ - ps_codec->pf_mem_cpy = ih264_memcpy; - ps_codec->pf_mem_cpy_mul8 = ih264_memcpy_mul_8; - ps_codec->pf_mem_set = ih264_memset; - ps_codec->pf_mem_set_mul8 = ih264_memset_mul_8; - /* sad me level functions */ for (i = 0; i < (MAX_PROCESS_CTXT); i++) { diff --git a/encoder/ih264e_intra_modes_eval.c b/encoder/ih264e_intra_modes_eval.c index a0e447e1..73d14b04 100644 --- a/encoder/ih264e_intra_modes_eval.c +++ b/encoder/ih264e_intra_modes_eval.c @@ -401,18 +401,18 @@ void ih264e_evaluate_intra16x16_modes_for_least_cost_rdoptoff(process_ctxt_t *ps } else { - ps_codec->pf_mem_set_mul8(pu1_ngbr_pels_i16,0,MB_SIZE); + memset(pu1_ngbr_pels_i16,0,MB_SIZE); } /* top pels */ u1_mb_b = ((ps_proc->ps_ngbr_avbl->u1_mb_b) && (u4_constrained_intra_pred ? ps_top_mb_syn_ele->u2_is_intra : 1)); if (u1_mb_b) { - ps_codec->pf_mem_cpy_mul8(pu1_ngbr_pels_i16+16+1,pu1_mb_b,16); + memcpy(pu1_ngbr_pels_i16+16+1,pu1_mb_b,16); } else { - ps_codec->pf_mem_set_mul8(pu1_ngbr_pels_i16+16+1,0,MB_SIZE); + memset(pu1_ngbr_pels_i16+16+1,0,MB_SIZE); } /* topleft pels */ u1_mb_d = ((ps_proc->ps_ngbr_avbl->u1_mb_d) @@ -1443,7 +1443,7 @@ void ih264e_evaluate_chroma_intra8x8_modes_for_least_cost_rdoptoff(process_ctxt_ } else { - ps_codec->pf_mem_set_mul8(pu1_ngbr_pels_c_i8x8, 0, MB_SIZE); + memset(pu1_ngbr_pels_c_i8x8, 0, MB_SIZE); } /* top pels */ @@ -1451,11 +1451,11 @@ void ih264e_evaluate_chroma_intra8x8_modes_for_least_cost_rdoptoff(process_ctxt_ && (u4_constrained_intra_pred ? ps_top_mb_syn_ele->u2_is_intra : 1)); if (u1_mb_b) { - ps_codec->pf_mem_cpy_mul8(&pu1_ngbr_pels_c_i8x8[18], pu1_mb_b, 16); + memcpy(&pu1_ngbr_pels_c_i8x8[18], pu1_mb_b, 16); } else { - ps_codec->pf_mem_set_mul8((pu1_ngbr_pels_c_i8x8 + 18), 0, MB_SIZE); + memset((pu1_ngbr_pels_c_i8x8 + 18), 0, MB_SIZE); } /* top left pels */ diff --git a/encoder/ih264e_process.c b/encoder/ih264e_process.c index 5e55a143..d0f799a8 100644 --- a/encoder/ih264e_process.c +++ b/encoder/ih264e_process.c @@ -1010,8 +1010,8 @@ WORD32 ih264e_update_proc_ctxt(process_ctxt_t *ps_proc) } else if (I4x4 == u4_mb_type) { - ps_codec->pf_mem_cpy_mul8(ps_proc->au1_left_mb_intra_modes, ps_proc->au1_intra_luma_mb_4x4_modes, 16); - ps_codec->pf_mem_cpy_mul8(pu1_top_mb_intra_modes, ps_proc->au1_intra_luma_mb_4x4_modes, 16); + memcpy(ps_proc->au1_left_mb_intra_modes, ps_proc->au1_intra_luma_mb_4x4_modes, 16); + memcpy(pu1_top_mb_intra_modes, ps_proc->au1_intra_luma_mb_4x4_modes, 16); } else if (I8x8 == u4_mb_type) { diff --git a/encoder/ih264e_structs.h b/encoder/ih264e_structs.h index 4f7a4d66..df261988 100644 --- a/encoder/ih264e_structs.h +++ b/encoder/ih264e_structs.h @@ -90,18 +90,6 @@ typedef void (*pf_iquant_itrans)(WORD16 *pi2_src, UWORD8 *pu1_pred, UWORD8 *pu1_ */ typedef void (*pf_pad)(UWORD8 *pu1_src, WORD32 src_strd, WORD32 wd, WORD32 pad_size); -/** -****************************************************************************** - * @brief memory handling leaf level -****************************************************************************** - */ -typedef void (*pf_memcpy)(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); - -typedef void (*pf_memset)(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); - -typedef void (*pf_memcpy_mul8)(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); - -typedef void (*pf_memset_mul8)(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); /** ****************************************************************************** @@ -2847,13 +2835,6 @@ struct _codec_t */ ih264e_skip_params_ft *apf_find_skip_params_me[2]; - /** - * fn ptrs for memory handling operations - */ - pf_memcpy pf_mem_cpy; - pf_memset pf_mem_set; - pf_memcpy_mul8 pf_mem_cpy_mul8; - pf_memset_mul8 pf_mem_set_mul8; /** * intra mode eval -encoder level function diff --git a/encoder/svc/isvce_function_selector_generic.c b/encoder/svc/isvce_function_selector_generic.c index c3a48bfa..6b0a462a 100644 --- a/encoder/svc/isvce_function_selector_generic.c +++ b/encoder/svc/isvce_function_selector_generic.c @@ -265,8 +265,6 @@ void isvce_init_function_ptr_generic(isvce_codec_t *ps_codec) ps_codec->pf_compute_sad_16x8 = ime_compute_sad_16x8; /* memory handling operations */ - ps_mem_fxns->pf_mem_cpy_mul8 = ih264_memcpy_mul_8; - ps_mem_fxns->pf_mem_set_mul8 = ih264_memset_mul_8; ps_mem_fxns->pf_copy_2d = isvc_copy_2d; ps_mem_fxns->pf_memset_2d = isvc_memset_2d; ps_mem_fxns->pf_nonzero_checker = isvc_is_nonzero_blk; diff --git a/encoder/svc/isvce_intra_modes_eval.c b/encoder/svc/isvce_intra_modes_eval.c index 58eb7b91..762808fc 100644 --- a/encoder/svc/isvce_intra_modes_eval.c +++ b/encoder/svc/isvce_intra_modes_eval.c @@ -297,7 +297,7 @@ void isvce_evaluate_intra16x16_modes_for_least_cost_rdoptoff(isvce_process_ctxt_ } else { - ps_mem_fxns->pf_mem_set_mul8(pu1_ngbr_pels_i16, 0, MB_SIZE); + memset(pu1_ngbr_pels_i16, 0, MB_SIZE); } /* top pels */ u1_mb_b = ((ps_proc->ps_ngbr_avbl->u1_mb_b) && @@ -306,11 +306,11 @@ void isvce_evaluate_intra16x16_modes_for_least_cost_rdoptoff(isvce_process_ctxt_ : 1)); if(u1_mb_b) { - ps_mem_fxns->pf_mem_cpy_mul8(pu1_ngbr_pels_i16 + 16 + 1, pu1_mb_b, 16); + memcpy(pu1_ngbr_pels_i16 + 16 + 1, pu1_mb_b, 16); } else { - ps_mem_fxns->pf_mem_set_mul8(pu1_ngbr_pels_i16 + 16 + 1, 0, MB_SIZE); + memset(pu1_ngbr_pels_i16 + 16 + 1, 0, MB_SIZE); } /* topleft pels */ u1_mb_d = ((ps_proc->ps_ngbr_avbl->u1_mb_d) && @@ -1412,7 +1412,7 @@ void isvce_evaluate_chroma_intra8x8_modes_for_least_cost_rdoptoff(isvce_process_ } else { - ps_mem_fxns->pf_mem_set_mul8(pu1_ngbr_pels_c_i8x8, 0, MB_SIZE); + memset(pu1_ngbr_pels_c_i8x8, 0, MB_SIZE); } /* top pels */ @@ -1422,11 +1422,11 @@ void isvce_evaluate_chroma_intra8x8_modes_for_least_cost_rdoptoff(isvce_process_ : 1)); if(u1_mb_b) { - ps_mem_fxns->pf_mem_cpy_mul8(&pu1_ngbr_pels_c_i8x8[18], pu1_mb_b, 16); + memcpy(&pu1_ngbr_pels_c_i8x8[18], pu1_mb_b, 16); } else { - ps_mem_fxns->pf_mem_set_mul8((pu1_ngbr_pels_c_i8x8 + 18), 0, MB_SIZE); + memset((pu1_ngbr_pels_c_i8x8 + 18), 0, MB_SIZE); } /* top left pels */ diff --git a/encoder/svc/isvce_process.c b/encoder/svc/isvce_process.c index cf679d94..a0792788 100644 --- a/encoder/svc/isvce_process.c +++ b/encoder/svc/isvce_process.c @@ -1540,11 +1540,9 @@ WORD32 isvce_update_proc_ctxt(isvce_process_ctxt_t *ps_proc) } else if(I4x4 == u4_mb_type) { - ps_mem_fxns->pf_mem_cpy_mul8( - ps_proc->s_nbr_info.ps_left_mb_intra_modes->au1_intra_modes, - ps_proc->au1_intra_luma_mb_4x4_modes, 16); - ps_mem_fxns->pf_mem_cpy_mul8(pu1_top_mb_intra_modes, - ps_proc->au1_intra_luma_mb_4x4_modes, 16); + memcpy(ps_proc->s_nbr_info.ps_left_mb_intra_modes->au1_intra_modes, + ps_proc->au1_intra_luma_mb_4x4_modes, 16); + memcpy(pu1_top_mb_intra_modes, ps_proc->au1_intra_luma_mb_4x4_modes, 16); } else if(I8x8 == u4_mb_type) { diff --git a/encoder/svc/isvce_structs.h b/encoder/svc/isvce_structs.h index 68619bc3..6b3abad2 100644 --- a/encoder/svc/isvce_structs.h +++ b/encoder/svc/isvce_structs.h @@ -1958,10 +1958,6 @@ typedef struct inter_pred_fxns_t typedef struct mem_fxns_t { - FT_MEMCPY *pf_mem_cpy_mul8; - - FT_MEMSET *pf_mem_set_mul8; - FT_COPY_2D *pf_copy_2d; FT_MEMSET_2D *pf_memset_2d; diff --git a/encoder/x86/ih264e_function_selector_ssse3.c b/encoder/x86/ih264e_function_selector_ssse3.c index 33937c53..7bcdb28b 100644 --- a/encoder/x86/ih264e_function_selector_ssse3.c +++ b/encoder/x86/ih264e_function_selector_ssse3.c @@ -173,9 +173,6 @@ void ih264e_init_function_ptr_ssse3(codec_t *ps_codec) ps_codec->pf_inter_pred_luma_vert = ih264_inter_pred_luma_vert_ssse3; ps_codec->pf_inter_pred_chroma = ih264_inter_pred_chroma_ssse3; - /* memory handling operations */ - ps_codec->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_ssse3; - ps_codec->pf_mem_set_mul8 = ih264_memset_mul_8_ssse3; /*intra mode eval -encoder level function*/ ps_codec->pf_ih264e_evaluate_intra16x16_modes = ih264e_evaluate_intra16x16_modes_ssse3; diff --git a/encoder/x86/svc/isvce_function_selector_ssse3.c b/encoder/x86/svc/isvce_function_selector_ssse3.c index 298b4904..b5069862 100644 --- a/encoder/x86/svc/isvce_function_selector_ssse3.c +++ b/encoder/x86/svc/isvce_function_selector_ssse3.c @@ -63,7 +63,6 @@ #include "isvc_structs.h" #include "isvc_trans_quant_itrans_iquant.h" #include "ih264_inter_pred_filters.h" -#include "ih264_mem_fns.h" #include "isvc_mem_fns.h" #include "ih264_padding.h" #include "ih264_intra_pred_filters.h" @@ -166,9 +165,6 @@ void isvce_init_function_ptr_ssse3(isvce_codec_t *ps_codec) ps_inter_pred_fxns->pf_inter_pred_luma_vert = ih264_inter_pred_luma_vert_ssse3; ps_inter_pred_fxns->pf_inter_pred_chroma = ih264_inter_pred_chroma_ssse3; - /* memory handling operations */ - ps_mem_fxns->pf_mem_cpy_mul8 = ih264_memcpy_mul_8_ssse3; - ps_mem_fxns->pf_mem_set_mul8 = ih264_memset_mul_8_ssse3; ps_mem_fxns->pf_copy_2d = isvc_copy_2d_ssse3; /*intra mode eval -encoder level function*/