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 AOM_AV1_ENCODER_RECONINTER_ENC_H_ 13 #define AOM_AV1_ENCODER_RECONINTER_ENC_H_ 14 15 #include "aom/aom_integer.h" 16 #include "av1/common/av1_common_int.h" 17 #include "av1/common/blockd.h" 18 #include "av1/common/convolve.h" 19 #include "av1/common/filter.h" 20 #include "av1/common/reconinter.h" 21 #include "av1/common/warped_motion.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 // Build single or compound reference inter predictors for all planes. 28 // Can build inter-intra predictors, masked predictors etc as well. 29 void av1_enc_build_inter_predictor(const AV1_COMMON *cm, MACROBLOCKD *xd, 30 int mi_row, int mi_col, 31 const BUFFER_SET *ctx, BLOCK_SIZE bsize, 32 int plane_from, int plane_to); 33 34 void av1_enc_build_inter_predictor_y(MACROBLOCKD *xd, int mi_row, int mi_col); 35 36 // Build one inter predictor. It is called for building predictor for single 37 // reference case, or just the 1st or 2nd reference in compound reference case. 38 // Can build both regular and masked predictors. 39 void av1_enc_build_one_inter_predictor(uint8_t *dst, int dst_stride, 40 const MV *src_mv, 41 InterPredParams *inter_pred_params); 42 43 void av1_build_prediction_by_above_preds(const AV1_COMMON *cm, MACROBLOCKD *xd, 44 uint8_t *tmp_buf[MAX_MB_PLANE], 45 int tmp_width[MAX_MB_PLANE], 46 int tmp_height[MAX_MB_PLANE], 47 int tmp_stride[MAX_MB_PLANE]); 48 49 void av1_build_prediction_by_left_preds(const AV1_COMMON *cm, MACROBLOCKD *xd, 50 uint8_t *tmp_buf[MAX_MB_PLANE], 51 int tmp_width[MAX_MB_PLANE], 52 int tmp_height[MAX_MB_PLANE], 53 int tmp_stride[MAX_MB_PLANE]); 54 55 void av1_build_obmc_inter_predictors_sb(const AV1_COMMON *cm, MACROBLOCKD *xd); 56 57 void av1_build_inter_predictors_for_planes_single_buf( 58 MACROBLOCKD *xd, BLOCK_SIZE bsize, int plane_from, int plane_to, int ref, 59 uint8_t *ext_dst[3], int ext_dst_stride[3]); 60 61 void av1_build_wedge_inter_predictor_from_buf(MACROBLOCKD *xd, BLOCK_SIZE bsize, 62 int plane_from, int plane_to, 63 uint8_t *ext_dst0[3], 64 int ext_dst_stride0[3], 65 uint8_t *ext_dst1[3], 66 int ext_dst_stride1[3]); 67 68 #ifdef __cplusplus 69 } // extern "C" 70 #endif 71 72 #endif // AOM_AV1_ENCODER_RECONINTER_ENC_H_ 73