1 /* 2 * Copyright(c) 2019 Intel Corporation 3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 */ 5 6 #ifndef EbComputeSAD_C_h 7 #define EbComputeSAD_C_h 8 9 #include "EbDefinitions.h" 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 uint32_t eb_vp9_fast_loop_nx_m_sad_kernel( 15 uint8_t *src, // input parameter, source samples Ptr 16 uint32_t src_stride, // input parameter, source stride 17 uint8_t *ref, // input parameter, reference samples Ptr 18 uint32_t ref_stride, // input parameter, reference stride 19 uint32_t height, // input parameter, block height (M) 20 uint32_t width); // input parameter, block width (N) 21 22 uint32_t eb_vp9_combined_averaging_sad( 23 uint8_t *src, 24 uint32_t src_stride, 25 uint8_t *ref1, 26 uint32_t ref1_stride, 27 uint8_t *ref2, 28 uint32_t ref2_stride, 29 uint32_t height, 30 uint32_t width); 31 32 uint32_t compute8x4_sad_kernel( 33 uint8_t *src, // input parameter, source samples Ptr 34 uint32_t src_stride, // input parameter, source stride 35 uint8_t *ref, // input parameter, reference samples Ptr 36 uint32_t ref_stride); // input parameter, reference stride 37 38 void eb_vp9_sad_loop_kernel( 39 uint8_t *src, // input parameter, source samples Ptr 40 uint32_t src_stride, // input parameter, source stride 41 uint8_t *ref, // input parameter, reference samples Ptr 42 uint32_t ref_stride, // input parameter, reference stride 43 uint32_t height, // input parameter, block height (M) 44 uint32_t width, // input parameter, block width (N) 45 uint64_t *best_sad, 46 int16_t *x_search_center, 47 int16_t *y_search_center, 48 uint32_t src_stride_raw, // input parameter, source stride (no line skipping) 49 int16_t search_area_width, 50 int16_t search_area_height); 51 52 void eb_vp9_sad_loop_kernel_sparse( 53 uint8_t *src, // input parameter, source samples Ptr 54 uint32_t src_stride, // input parameter, source stride 55 uint8_t *ref, // input parameter, reference samples Ptr 56 uint32_t ref_stride, // input parameter, reference stride 57 uint32_t height, // input parameter, block height (M) 58 uint32_t width, // input parameter, block width (N) 59 uint64_t *best_sad, 60 int16_t *x_search_center, 61 int16_t *y_search_center, 62 uint32_t src_stride_raw, // input parameter, source stride (no line skipping) 63 int16_t search_area_width, 64 int16_t search_area_height); 65 66 void eb_vp9_get_eight_horizontal_search_point_results_8x8_16x16_pu( 67 uint8_t *src, 68 uint32_t src_stride, 69 uint8_t *ref, 70 uint32_t ref_stride, 71 uint32_t *p_best_sad8x8, 72 uint32_t *p_best_mv8x8, 73 uint32_t *p_best_sad16x16, 74 uint32_t *p_best_mv16x16, 75 uint32_t mv, 76 uint16_t *p_sad16x16); 77 78 void eb_vp9_get_eight_horizontal_search_point_results_32x32_64x64( 79 uint16_t *p_sad16x16, 80 uint32_t *p_best_sad32x32, 81 uint32_t *p_best_sad64x64, 82 uint32_t *p_best_mv32x32, 83 uint32_t *p_best_mv64x64, 84 uint32_t mv); 85 86 #ifdef __cplusplus 87 } 88 #endif 89 #endif // EbComputeSAD_C_h 90