xref: /aosp_15_r20/external/libavc/encoder/ime.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1 /******************************************************************************
2  *
3  * Copyright (C) 2015 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19 */
20 /**
21  *******************************************************************************
22  * @file
23  *  ime.h
24  *
25  * @brief
26  *  Contains declarations of me functions
27  *
28  * @author
29  *  Ittiam
30  *
31  * @remarks
32  *
33  *******************************************************************************
34  */
35 
36 #ifndef _IME_H_
37 #define _IME_H_
38 
39 /*****************************************************************************/
40 /* Constant Macros                                                           */
41 /*****************************************************************************/
42 
43 /**
44 ******************************************************************************
45  *  @brief      Number of iterations before exiting during diamond search
46 ******************************************************************************
47  */
48 #define NUM_LAYERS 16
49 
50 /*****************************************************************************/
51 /* Extern Function Declarations                                              */
52 /*****************************************************************************/
53 
54 extern void ime_diamond_search_16x16(me_ctxt_t *ps_me_ctxt, WORD32 i4_reflist);
55 
56 extern void ime_evaluate_init_srchposn_16x16(me_ctxt_t *ps_me_ctxt,
57                                              WORD32 i4_reflist);
58 
59 extern void ime_full_pel_motion_estimation_16x16(me_ctxt_t *ps_me_ctxt,
60                                                  WORD32 i4_ref_list);
61 
62 extern void ime_sub_pel_motion_estimation_16x16(me_ctxt_t *ps_me_ctxt,
63                                                 WORD32 i4_reflist);
64 
65 extern void ime_compute_skip_cost(me_ctxt_t *ps_me_ctxt,
66                                   ime_mv_t *ps_skip_mv,
67                                   mb_part_ctxt *ps_smb_part_info,
68                                   UWORD32 u4_use_stat_sad,
69                                   WORD32 i4_reflist,
70                                   WORD32 is_slice_type_b);
71 
72 
73 #endif /* _IME_H_ */
74