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_ENCODEFRAME_H_ 13 #define AOM_AV1_ENCODER_ENCODEFRAME_H_ 14 15 #include "aom/aom_integer.h" 16 #include "av1/common/blockd.h" 17 #include "av1/common/enums.h" 18 19 #include "av1/encoder/global_motion.h" 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 #define DELTA_Q_PERCEPTUAL_MODULATION \ 26 1 // 0: variance based 27 // 1: wavelet AC energy based 28 29 struct macroblock; 30 struct yv12_buffer_config; 31 struct AV1_COMP; 32 struct ThreadData; 33 34 void av1_init_rtc_counters(struct macroblock *const x); 35 36 void av1_accumulate_rtc_counters(struct AV1_COMP *cpi, 37 const struct macroblock *const x); 38 39 void av1_setup_src_planes(struct macroblock *x, 40 const struct yv12_buffer_config *src, int mi_row, 41 int mi_col, const int num_planes, BLOCK_SIZE bsize); 42 43 void av1_encode_frame(struct AV1_COMP *cpi); 44 45 void av1_alloc_tile_data(struct AV1_COMP *cpi); 46 void av1_init_tile_data(struct AV1_COMP *cpi); 47 void av1_encode_tile(struct AV1_COMP *cpi, struct ThreadData *td, int tile_row, 48 int tile_col); 49 void av1_encode_sb_row(struct AV1_COMP *cpi, struct ThreadData *td, 50 int tile_row, int tile_col, int mi_row); 51 #ifdef __cplusplus 52 } // extern "C" 53 #endif 54 55 #endif // AOM_AV1_ENCODER_ENCODEFRAME_H_ 56