diff options
Diffstat (limited to 'libs/libaom/src/av1/encoder/intra_mode_search.h')
-rw-r--r-- | libs/libaom/src/av1/encoder/intra_mode_search.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/libs/libaom/src/av1/encoder/intra_mode_search.h b/libs/libaom/src/av1/encoder/intra_mode_search.h new file mode 100644 index 000000000..4b5d31c3e --- /dev/null +++ b/libs/libaom/src/av1/encoder/intra_mode_search.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2020, Alliance for Open Media. All rights reserved + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. If the Alliance for Open + * Media Patent License 1.0 was not distributed with this source code in the + * PATENTS file, you can obtain it at www.aomedia.org/license/patent. + */ + +#ifndef AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_ +#define AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_ + +#include "av1/encoder/encoder.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct IntraModeSearchState { + int skip_intra_modes; + PREDICTION_MODE best_intra_mode; + int angle_stats_ready; + uint8_t directional_mode_skip_mask[INTRA_MODES]; + int rate_uv_intra; + int rate_uv_tokenonly; + int64_t dist_uvs; + int skip_uvs; + UV_PREDICTION_MODE mode_uv; + PALETTE_MODE_INFO pmi_uv; + int8_t uv_angle_delta; + int64_t best_pred_rd[REFERENCE_MODES]; +} IntraModeSearchState; + +void av1_restore_uv_color_map(const AV1_COMP *const cpi, MACROBLOCK *x); +int av1_search_palette_mode(const AV1_COMP *cpi, MACROBLOCK *x, + RD_STATS *this_rd_cost, PICK_MODE_CONTEXT *ctx, + BLOCK_SIZE bsize, MB_MODE_INFO *const mbmi, + PALETTE_MODE_INFO *const pmi, + unsigned int *ref_costs_single, + IntraModeSearchState *intra_search_state, + int64_t best_rd); + +int64_t av1_rd_pick_intra_sbuv_mode(const AV1_COMP *const cpi, MACROBLOCK *x, + int *rate, int *rate_tokenonly, + int64_t *distortion, int *skippable, + BLOCK_SIZE bsize, TX_SIZE max_tx_size); + +int64_t av1_handle_intra_mode(IntraModeSearchState *intra_search_state, + const AV1_COMP *cpi, MACROBLOCK *x, + BLOCK_SIZE bsize, int ref_frame_cost, + const PICK_MODE_CONTEXT *ctx, int disable_skip, + RD_STATS *rd_stats, RD_STATS *rd_stats_y, + RD_STATS *rd_stats_uv, int64_t best_rd, + int64_t *best_intra_rd, int8_t best_mbmode_skip); + +int64_t av1_rd_pick_intra_sby_mode(const AV1_COMP *const cpi, MACROBLOCK *x, + int *rate, int *rate_tokenonly, + int64_t *distortion, int *skippable, + BLOCK_SIZE bsize, int64_t best_rd, + PICK_MODE_CONTEXT *ctx); +#endif // AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_ |