1 /*
2  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3  *
4  * This source code is subject to the terms of the BSD 2 Clause License and
5  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6  * was not distributed with this source code in the LICENSE file, you can
7  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8  * Media Patent License 1.0 was not distributed with this source code in the
9  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10  */
11 
12 #ifndef AV1_ENCODER_ENCODEMV_H_
13 #define AV1_ENCODER_ENCODEMV_H_
14 
15 #include "av1/encoder/encoder.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 void av1_entropy_mv_init(void);
22 
23 #if !CONFIG_NEW_MULTISYMBOL
24 void av1_write_nmv_probs(AV1_COMMON *cm, int usehp, aom_writer *w,
25                          nmv_context_counts *const counts);
26 #endif
27 
28 void av1_encode_mv(AV1_COMP *cpi, aom_writer *w, const MV *mv, const MV *ref,
29                    nmv_context *mvctx, int usehp);
30 
31 void av1_build_nmv_cost_table(int *mvjoint, int *mvcost[2],
32                               const nmv_context *mvctx,
33                               MvSubpelPrecision precision);
34 
35 void av1_update_mv_count(ThreadData *td);
36 
37 #if CONFIG_INTRABC
38 void av1_encode_dv(aom_writer *w, const MV *mv, const MV *ref,
39                    nmv_context *mvctx);
40 #endif  // CONFIG_INTRABC
41 
42 #ifdef __cplusplus
43 }  // extern "C"
44 #endif
45 
46 #endif  // AV1_ENCODER_ENCODEMV_H_
47