1 /*
2 * Copyright(c) 2019 Intel Corporation
3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent
4 */
5 
6 #ifndef EbMotionEstimation_h
7 #define EbMotionEstimation_h
8 
9 #include "EbDefinitions.h"
10 #include "EbCodingUnit.h"
11 
12 #include "EbMotionEstimationProcess.h"
13 #include "EbMotionEstimationContext.h"
14 #include "EbPictureBufferDesc.h"
15 #include "EbSequenceControlSet.h"
16 #include "EbReferenceObject.h"
17 #include "EbPictureDecisionProcess.h"
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 extern EbErrorType motion_estimate_sb(
22     PictureParentControlSet *picture_control_set_ptr,
23     uint32_t                 sb_index,
24     uint32_t                 sb_origin_x,
25     uint32_t                 sb_origin_y,
26     MeContext               *context_ptr,
27     EbPictureBufferDesc     *input_ptr);
28 
29 extern void eb_vp9_decimation_2d(
30     uint8_t  *input_samples,
31     uint32_t  input_stride,
32     uint32_t  input_area_width,
33     uint32_t  input_area_height,
34     uint8_t  *decim_samples,
35     uint32_t  decim_stride,
36     uint32_t  decim_step);
37 
38 extern void eb_vp9_get_mv(
39     PictureParentControlSet *picture_control_set_ptr,
40     uint32_t                 sb_index,
41     int32_t                 *x_current_mv,
42     int32_t                 *y_current_mv);
43 
44 int8_t sort3_elements(uint32_t a, uint32_t b, uint32_t c);
45 #define a_b_c  0
46 #define a_c_b  1
47 #define b_a_c  2
48 #define b_c_a  3
49 #define c_a_b  4
50 #define c_b_a  5
51 
52 #ifdef __cplusplus
53 }
54 #endif
55 #endif // EbMotionEstimation_h
56