AOMedia AV1 Codec
intra_mode_search.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, 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 
15 #ifndef AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_
16 #define AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_
17 
18 #include "av1/encoder/encoder.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
31 typedef struct IntraModeSearchState {
35  PREDICTION_MODE best_intra_mode;
36 
49  uint8_t directional_mode_skip_mask[INTRA_MODES];
64  int64_t dist_uvs;
65  int skip_uvs;
66  UV_PREDICTION_MODE mode_uv;
67  PALETTE_MODE_INFO pmi_uv;
68  int8_t uv_angle_delta;
71 
108 int av1_handle_intra_y_mode(IntraModeSearchState *intra_search_state,
109  const AV1_COMP *cpi, MACROBLOCK *x,
110  BLOCK_SIZE bsize, unsigned int ref_frame_cost,
111  const PICK_MODE_CONTEXT *ctx, RD_STATS *rd_stats_y,
112  int64_t best_rd, int *mode_cost_y, int64_t *rd_y,
113  int64_t *best_model_rd,
114  int64_t top_intra_model_rd[]);
115 
144  IntraModeSearchState *intra_search_state, const AV1_COMP *cpi,
145  MACROBLOCK *x, BLOCK_SIZE bsize, RD_STATS *rd_stats,
146  const RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv, int64_t best_rd);
147 
174 int av1_search_palette_mode(IntraModeSearchState *intra_search_state,
175  const AV1_COMP *cpi, MACROBLOCK *x,
176  BLOCK_SIZE bsize, unsigned int ref_frame_cost,
177  PICK_MODE_CONTEXT *ctx, RD_STATS *this_rd_cost,
178  int64_t best_rd);
179 
210 int64_t av1_rd_pick_intra_sby_mode(const AV1_COMP *const cpi, MACROBLOCK *x,
211  int *rate, int *rate_tokenonly,
212  int64_t *distortion, int *skippable,
213  BLOCK_SIZE bsize, int64_t best_rd,
214  PICK_MODE_CONTEXT *ctx);
215 
245 int64_t av1_rd_pick_intra_sbuv_mode(const AV1_COMP *const cpi, MACROBLOCK *x,
246  int *rate, int *rate_tokenonly,
247  int64_t *distortion, int *skippable,
248  BLOCK_SIZE bsize, TX_SIZE max_tx_size);
249 
252 void av1_count_colors(const uint8_t *src, int stride, int rows, int cols,
253  int *val_count, int *num_colors);
254 
257 void av1_count_colors_highbd(const uint8_t *src8, int stride, int rows,
258  int cols, int bit_depth, int *val_count,
259  int *val_count_8bit, int *num_color_bins,
260  int *num_colors);
261 
264 static AOM_INLINE void init_intra_mode_search_state(
265  IntraModeSearchState *intra_search_state) {
266  memset(intra_search_state, 0, sizeof(*intra_search_state));
267  intra_search_state->rate_uv_intra = INT_MAX;
268 }
269 
280 void set_y_mode_and_delta_angle(const int mode_idx, MB_MODE_INFO *const mbmi);
281 
293 int prune_intra_y_mode(int64_t this_model_rd, int64_t *best_model_rd,
294  int64_t top_intra_model_rd[], int max_model_cnt_allowed,
295  int model_rd_index_for_pruning);
296 
297 #ifdef __cplusplus
298 } // extern "C"
299 #endif
300 
301 #endif // AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_
SPEED_FEATURES::rt_sf
REAL_TIME_SPEED_FEATURES rt_sf
Definition: speed_features.h:1457
rd_pick_intra_angle_sbuv
static int rd_pick_intra_angle_sbuv(const AV1_COMP *const cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int rate_overhead, int64_t best_rd, int *rate, RD_STATS *rd_stats)
Search for the best angle delta for chroma prediction.
Definition: intra_mode_search.c:434
IntraModeCfg::enable_angle_delta
bool enable_angle_delta
Definition: encoder.h:330
AV1_PRIMARY::frame_probs
FrameProbInfo frame_probs
Definition: encoder.h:2618
encoder.h
Declares top-level encoder structures and functions.
IntraModeCfg::enable_diagonal_intra
bool enable_diagonal_intra
Definition: encoder.h:325
FeatureFlags::interp_filter
InterpFilter interp_filter
Definition: av1_common_int.h:411
av1_rd_pick_intra_sbuv_mode
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)
Perform intra-mode search on chroma channels.
Definition: intra_mode_search.c:686
CommonQuantParams::y_dc_delta_q
int y_dc_delta_q
Definition: av1_common_int.h:624
intra_mode_info_cost_y
static int intra_mode_info_cost_y(const AV1_COMP *cpi, const MACROBLOCK *x, const MB_MODE_INFO *mbmi, BLOCK_SIZE bsize, int mode_cost)
Returns the rate cost for luma prediction mode info of intra blocks.
Definition: intra_mode_search_utils.h:467
IntraModeSearchState
Variables related to intra-mode search during inter frame coding.
Definition: intra_mode_search.h:31
MB_MODE_INFO::ref_mv_idx
uint8_t ref_mv_idx
Which ref_mv to use.
Definition: blockd.h:314
ModeCosts
Holds the entropy costs for various modes sent to the bitstream.
Definition: block.h:507
IntraModeSearchState::directional_mode_skip_mask
uint8_t directional_mode_skip_mask[INTRA_MODES]
Whether a directional mode is pruned.
Definition: intra_mode_search.h:49
macroblock::plane
struct macroblock_plane plane[3]
Each of the encoding plane.
Definition: block.h:788
MB_MODE_INFO::tx_size
TX_SIZE tx_size
Transform size when fixed size txfm is used (e.g. intra modes).
Definition: blockd.h:290
MB_MODE_INFO::angle_delta
int8_t angle_delta[PLANE_TYPES]
Directional mode delta: the angle is base angle + (angle_delta * step).
Definition: blockd.h:272
palette.h
Declares functions used in palette search.
AOM_PLANE_Y
#define AOM_PLANE_Y
Definition: aom_image.h:199
InterpSearchFlags::interp_filter_search_mask
uint16_t interp_filter_search_mask
Definition: encoder.h:1931
TxfmSearchInfo::blk_skip
uint8_t blk_skip[MAX_MIB_SIZE *MAX_MIB_SIZE]
Whether to skip transform and quantization on a txfm block level.
Definition: block.h:465
IntraModeSearchState::skip_uvs
int skip_uvs
Whether the uv txfm is skippable.
Definition: intra_mode_search.h:65
cfl_rd_pick_alpha
static int cfl_rd_pick_alpha(MACROBLOCK *const x, const AV1_COMP *const cpi, TX_SIZE tx_size, int64_t ref_best_rd, int cfl_search_range, RD_STATS *best_rd_stats, uint8_t *best_cfl_alpha_idx, int8_t *best_cfl_alpha_signs)
Pick the optimal parameters for Chroma to Luma (CFL) component.
Definition: intra_mode_search.c:629
MB_MODE_INFO::interp_filters
int_interpfilters interp_filters
Filter used in subpel interpolation.
Definition: blockd.h:248
intra_mode_search_utils.h
Defines utility functions used in intra mode search.
intra_mode_info_cost_uv
static int intra_mode_info_cost_uv(const AV1_COMP *cpi, const MACROBLOCK *x, const MB_MODE_INFO *mbmi, BLOCK_SIZE bsize, int mode_cost)
Return the rate cost for chroma prediction mode info of intra blocks.
Definition: intra_mode_search_utils.h:532
macroblockd::above_mbmi
MB_MODE_INFO * above_mbmi
Definition: blockd.h:652
MB_MODE_INFO::filter_intra_mode_info
FILTER_INTRA_MODE_INFO filter_intra_mode_info
The type of filter intra mode used (if applicable).
Definition: blockd.h:274
AOM_PLANE_U
#define AOM_PLANE_U
Definition: aom_image.h:200
macroblockd::mi_col
int mi_col
Definition: blockd.h:583
macroblockd::mb_to_bottom_edge
int mb_to_bottom_edge
Definition: blockd.h:687
IntraModeSearchState::best_intra_mode
PREDICTION_MODE best_intra_mode
The best luma intra-mode found so far.
Definition: intra_mode_search.h:35
AV1_COMP::sf
SPEED_FEATURES sf
Definition: encoder.h:2833
InterpSearchFlags::default_interp_skip_flags
int default_interp_skip_flags
Definition: encoder.h:1927
AV1_COMP::gf_frame_index
unsigned char gf_frame_index
Definition: encoder.h:2864
macroblockd::cfl
CFL_CTX cfl
Definition: blockd.h:901
prune_intra_y_mode
int prune_intra_y_mode(int64_t this_model_rd, int64_t *best_model_rd, int64_t top_intra_model_rd[], int max_model_cnt_allowed, int model_rd_index_for_pruning)
prune luma intra mode based on the model rd.
Definition: intra_mode_search.c:371
IntraModeCfg::enable_directional_intra
bool enable_directional_intra
Definition: encoder.h:320
IntraModeCfg
Encoder flags for intra prediction.
Definition: encoder.h:295
AV1_PRIMARY::gf_group
GF_GROUP gf_group
Definition: encoder.h:2453
av1_txfm_uvrd
int av1_txfm_uvrd(const AV1_COMP *const cpi, MACROBLOCK *x, RD_STATS *rd_stats, BLOCK_SIZE bsize, int64_t ref_best_rd)
Chroma block transform search.
WinnerModeStats::color_index_map
uint8_t color_index_map[MAX_SB_SQUARE]
The color map needed to reconstruct palette mode.
Definition: block.h:94
macroblockd::is_chroma_ref
bool is_chroma_ref
Definition: blockd.h:608
macroblock::winner_mode_stats
WinnerModeStats * winner_mode_stats
Tracks the winner modes in the current coding block.
Definition: block.h:1053
macroblockd::up_available
bool up_available
Definition: blockd.h:629
init_intra_mode_search_state
static void init_intra_mode_search_state(IntraModeSearchState *intra_search_state)
Initializes the IntraModeSearchState struct.
Definition: intra_mode_search.h:264
FeatureFlags::allow_screen_content_tools
bool allow_screen_content_tools
Definition: av1_common_int.h:379
macroblock::rdmult
int rdmult
Rate-distortion multiplier.
Definition: block.h:883
macroblockd::left_mbmi
MB_MODE_INFO * left_mbmi
Definition: blockd.h:647
AV1_COMP
Top level encoder structure.
Definition: encoder.h:2632
IntraModeSearchState::dir_mode_skip_mask_ready
int dir_mode_skip_mask_ready
Whether directional_mode_skip_mask is valid for pruning.
Definition: intra_mode_search.h:53
MB_MODE_INFO::compound_idx
uint8_t compound_idx
Indicates whether dist_wtd_comp(0) is used or not (0).
Definition: blockd.h:322
macroblock::qindex
int qindex
Quantization index for the current partition block.
Definition: block.h:866
AV1_COMP::interp_search_flags
InterpSearchFlags interp_search_flags
Definition: encoder.h:3039
macroblockd::mb_to_right_edge
int mb_to_right_edge
Definition: blockd.h:685
macroblock::palette_buffer
PALETTE_BUFFER * palette_buffer
Buffer to store the best palette map.
Definition: block.h:839
model_intra_yrd_and_prune
static int model_intra_yrd_and_prune(const AV1_COMP *const cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int64_t *best_model_rd)
Estimate the luma rdcost of a given intra mode and try to prune it.
Definition: intra_mode_search_utils.h:628
MB_MODE_INFO::palette_mode_info
PALETTE_MODE_INFO palette_mode_info
Stores the size and colors of palette mode.
Definition: blockd.h:280
MAX_WINNER_MODE_COUNT_INTRA
#define MAX_WINNER_MODE_COUNT_INTRA
Number of intra winner modes kept.
Definition: block.h:40
IntraModeSearchState::dist_uvs
int64_t dist_uvs
Distortion of the uv_mode's recon.
Definition: intra_mode_search.h:64
AV1Common::seq_params
SequenceHeader * seq_params
Definition: av1_common_int.h:981
AV1_COMP::common
AV1_COMMON common
Definition: encoder.h:2675
MB_MODE_INFO::ref_frame
MV_REFERENCE_FRAME ref_frame[2]
The reference frames for the MV.
Definition: blockd.h:246
MB_MODE_INFO::uv_mode
UV_PREDICTION_MODE uv_mode
The UV mode when intra is used.
Definition: blockd.h:234
MB_MODE_INFO::interinter_comp
INTERINTER_COMPOUND_DATA interinter_comp
Struct that stores the data used in interinter compound mode.
Definition: blockd.h:263
intra_block_yrd
static int intra_block_yrd(const AV1_COMP *const cpi, MACROBLOCK *x, BLOCK_SIZE bsize, const int *bmode_costs, int64_t *best_rd, int *rate, int *rate_tokenonly, int64_t *distortion, int *skippable, MB_MODE_INFO *best_mbmi, PICK_MODE_CONTEXT *ctx)
Get the intra prediction by searching through tx_type and tx_size.
Definition: intra_mode_search.c:943
av1_search_palette_mode
int av1_search_palette_mode(IntraModeSearchState *intra_search_state, const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, unsigned int ref_frame_cost, PICK_MODE_CONTEXT *ctx, RD_STATS *this_rd_cost, int64_t best_rd)
Evaluate luma palette mode for inter frames.
Definition: intra_mode_search.c:840
macroblock::use_mb_mode_cache
int use_mb_mode_cache
Whether to reuse the mode stored in mb_mode_cache.
Definition: block.h:1108
IntraModeCfg::enable_smooth_intra
bool enable_smooth_intra
Definition: encoder.h:308
WinnerModeStats::mbmi
MB_MODE_INFO mbmi
The mbmi used to reconstruct the winner mode.
Definition: block.h:84
IntraModeSearchState::uv_angle_delta
int8_t uv_angle_delta
Angle delta if mode_uv directional.
Definition: intra_mode_search.h:68
SPEED_FEATURES::winner_mode_sf
WINNER_MODE_SPEED_FEATURES winner_mode_sf
Definition: speed_features.h:1447
SPEED_FEATURES
Top level speed vs quality trade off data struture.
Definition: speed_features.h:1388
av1_rd_pick_intra_sby_mode
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)
Perform intra-mode search on luma channels for intra frames.
Definition: intra_mode_search.c:1213
ModeCosts::mbmode_cost
int mbmode_cost[4][INTRA_MODES]
Luma mode cost for inter frame.
Definition: block.h:521
av1_count_colors_highbd
void av1_count_colors_highbd(const uint8_t *src8, int stride, int rows, int cols, int bit_depth, int *val_count, int *val_count_8bit, int *num_color_bins, int *num_colors)
See av1_count_colors(), but for highbd.
Definition: intra_mode_search.c:283
set_y_mode_and_delta_angle
void set_y_mode_and_delta_angle(const int mode_idx, MB_MODE_INFO *const mbmi)
set the luma intra mode and delta angles for a given mode index. The total number of luma intra mode ...
Definition: intra_mode_search.c:326
IntraModeSearchState::rate_uv_intra
int rate_uv_intra
Total rate to transmit uv_mode.
Definition: intra_mode_search.h:62
MB_MODE_INFO::bsize
BLOCK_SIZE bsize
The block size of the current coding block.
Definition: blockd.h:228
IntraModeSearchState::pmi_uv
PALETTE_MODE_INFO pmi_uv
Color map if mode_uv is palette.
Definition: intra_mode_search.h:67
FrameProbInfo::switchable_interp_probs
int switchable_interp_probs[FRAME_UPDATE_TYPES][((SWITCHABLE_FILTERS+1) *4)][SWITCHABLE_FILTERS]
Definition: encoder.h:1091
AV1Common::quant_params
CommonQuantParams quant_params
Definition: av1_common_int.h:927
IntraModeSearchState::skip_intra_modes
int skip_intra_modes
Whether to terminate all intra mode search.
Definition: intra_mode_search.h:45
av1_txfm_rd_in_plane
void av1_txfm_rd_in_plane(MACROBLOCK *x, const AV1_COMP *cpi, RD_STATS *rd_stats, int64_t ref_best_rd, int64_t current_rd, int plane, BLOCK_SIZE plane_bsize, TX_SIZE tx_size, FAST_TX_SEARCH_MODE ftxs_mode, int skip_trellis)
Transform type search with fixed transform size.
MB_MODE_INFO::mode
PREDICTION_MODE mode
The prediction mode used.
Definition: blockd.h:232
av1_pick_recursive_tx_size_type_yrd
void av1_pick_recursive_tx_size_type_yrd(const AV1_COMP *cpi, MACROBLOCK *x, RD_STATS *rd_stats, BLOCK_SIZE bsize, int64_t ref_best_rd)
Recursive transform size and type search.
av1_handle_intra_y_mode
int av1_handle_intra_y_mode(IntraModeSearchState *intra_search_state, const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, unsigned int ref_frame_cost, const PICK_MODE_CONTEXT *ctx, RD_STATS *rd_stats_y, int64_t best_rd, int *mode_cost_y, int64_t *rd_y, int64_t *best_model_rd, int64_t top_intra_model_rd[])
Evaluate a given luma intra-mode for inter frames.
Definition: intra_mode_search.c:1052
MB_MODE_INFO::mv
int_mv mv[2]
The motion vectors used by the current inter mode.
Definition: blockd.h:244
macroblock_plane::src
struct buf_2d src
A buffer containing the source frame.
Definition: block.h:117
CommonQuantParams::base_qindex
int base_qindex
Definition: av1_common_int.h:618
rd_pick_filter_intra_sby
static int rd_pick_filter_intra_sby(const AV1_COMP *const cpi, MACROBLOCK *x, int *rate, int *rate_tokenonly, int64_t *distortion, int *skippable, BLOCK_SIZE bsize, int mode_cost, PREDICTION_MODE best_mode_so_far, int64_t *best_rd, int64_t *best_model_rd, PICK_MODE_CONTEXT *ctx)
Search for the best filter_intra mode when coding intra frame.
Definition: intra_mode_search.c:174
AV1Common
Top level common structure used by both encoder and decoder.
Definition: av1_common_int.h:755
SPEED_FEATURES::intra_sf
INTRA_MODE_SPEED_FEATURES intra_sf
Definition: speed_features.h:1432
IntraModeSearchState::rate_uv_tokenonly
int rate_uv_tokenonly
Rate transmit txfm tokens.
Definition: intra_mode_search.h:63
macroblockd::lossless
int lossless[8]
Definition: blockd.h:824
av1_search_intra_uv_modes_in_interframe
int av1_search_intra_uv_modes_in_interframe(IntraModeSearchState *intra_search_state, const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, RD_STATS *rd_stats, const RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv, int64_t best_rd)
Search through all chroma intra-modes for inter frames.
Definition: intra_mode_search.c:1153
macroblock::txfm_search_info
TxfmSearchInfo txfm_search_info
Results of the txfm searches that have been done.
Definition: block.h:1158
IntraModeCfg::enable_paeth_intra
bool enable_paeth_intra
Definition: encoder.h:312
macroblock::pred_sse
unsigned int pred_sse[REF_FRAMES]
SSE of the current predictor.
Definition: block.h:1177
ModeCosts::y_mode_costs
int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES]
Luma mode cost for intra frame.
Definition: block.h:523
MB_MODE_INFO::skip_txfm
int8_t skip_txfm
Whether to skip transforming and sending.
Definition: blockd.h:288
IntraModeSearchState::mode_uv
UV_PREDICTION_MODE mode_uv
The best uv mode.
Definition: intra_mode_search.h:66
MB_MODE_INFO::comp_group_idx
uint8_t comp_group_idx
Indicates if masked compound is used(1) or not (0).
Definition: blockd.h:320
AOM_PLANE_V
#define AOM_PLANE_V
Definition: aom_image.h:201
macroblock::mb_mode_cache
const MB_MODE_INFO * mb_mode_cache
The mode to reuse during av1_rd_pick_intra_mode_sb and av1_rd_pick_inter_mode.
Definition: block.h:1111
macroblockd::mi_row
int mi_row
Definition: blockd.h:582
AV1_COMP::ppi
AV1_PRIMARY * ppi
Definition: encoder.h:2636
av1_interpolation_filter_search
int64_t av1_interpolation_filter_search(MACROBLOCK *const x, const AV1_COMP *const cpi, const TileDataEnc *tile_data, BLOCK_SIZE bsize, const BUFFER_SET *const tmp_dst, const BUFFER_SET *const orig_dst, int64_t *const rd, int *const switchable_rate, int *skip_build_pred, HandleInterModeArgs *args, int64_t ref_best_rd)
AV1 interpolation filter search.
Definition: interp_search.c:654
MB_MODE_INFO
Stores the prediction/txfm mode of the current coding block.
Definition: blockd.h:222
macroblockd
Variables related to current coding block.
Definition: blockd.h:577
PALETTE_BUFFER::best_palette_color_map
uint8_t best_palette_color_map[MAX_PALETTE_SQUARE]
The best color map found.
Definition: block.h:330
macroblock::e_mbd
MACROBLOCKD e_mbd
Decoder's view of current coding block.
Definition: block.h:796
speed_features.h
macroblock::winner_mode_count
int winner_mode_count
Tracks how many winner modes there are.
Definition: block.h:1055
MB_MODE_INFO::cfl_alpha_signs
int8_t cfl_alpha_signs
Chroma from Luma: Joint sign of alpha Cb and alpha Cr.
Definition: blockd.h:276
MB_MODE_INFO::segment_id
uint8_t segment_id
The segment id.
Definition: blockd.h:310
MB_MODE_INFO::cfl_alpha_idx
uint8_t cfl_alpha_idx
Chroma from Luma: Index of the alpha Cb and alpha Cr combination.
Definition: blockd.h:278
macroblockd::left_available
bool left_available
Definition: blockd.h:633
AV1_COMP::oxcf
AV1EncoderConfig oxcf
Definition: encoder.h:2680
av1_rd_pick_palette_intra_sby
void av1_rd_pick_palette_intra_sby(const struct AV1_COMP *cpi, struct macroblock *x, BLOCK_SIZE bsize, int dc_mode_cost, MB_MODE_INFO *best_mbmi, uint8_t *best_palette_color_map, int64_t *best_rd, int *rate, int *rate_tokenonly, int64_t *distortion, int *skippable, int *beat_best_rd, struct PICK_MODE_CONTEXT *ctx, uint8_t *best_blk_skip, uint8_t *tx_type_map)
Search for the best palette in the luma plane.
IntraModeCfg::enable_cfl_intra
bool enable_cfl_intra
Definition: encoder.h:316
macroblock::mode_costs
ModeCosts mode_costs
The rate needed to signal a mode to the bitstream.
Definition: block.h:891
AV1_PRIMARY::fn_ptr
aom_variance_fn_ptr_t fn_ptr[BLOCK_SIZES_ALL]
Definition: encoder.h:2530
macroblockd::plane
struct macroblockd_plane plane[3]
Definition: blockd.h:613
handle_filter_intra_mode
static void handle_filter_intra_mode(const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, const PICK_MODE_CONTEXT *ctx, RD_STATS *rd_stats_y, int mode_cost, int64_t best_rd, int64_t best_rd_so_far)
Search for the best filter_intra mode when coding inter frame.
Definition: intra_mode_search.c:991
SPEED_FEATURES::interp_sf
INTERP_FILTER_SPEED_FEATURES interp_sf
Definition: speed_features.h:1427
av1_rd_pick_palette_intra_sbuv
void av1_rd_pick_palette_intra_sbuv(const struct AV1_COMP *cpi, struct macroblock *x, int dc_mode_cost, uint8_t *best_palette_color_map, MB_MODE_INFO *const best_mbmi, int64_t *best_rd, int *rate, int *rate_tokenonly, int64_t *distortion, int *skippable)
Search for the best palette in the chroma plane.
av1_pick_uniform_tx_size_type_yrd
void av1_pick_uniform_tx_size_type_yrd(const AV1_COMP *const cpi, MACROBLOCK *x, RD_STATS *rd_stats, BLOCK_SIZE bs, int64_t ref_best_rd)
Uniform transform size and type search.
ModeCosts::cfl_cost
int cfl_cost[CFL_JOINT_SIGNS][CFL_PRED_PLANES][CFL_ALPHABET_SIZE]
Rate rate associated with each alpha codeword.
Definition: block.h:534
intra_mode_search.h
Declares high level functions to search through intra modes.
AV1Common::features
FeatureFlags features
Definition: av1_common_int.h:910
AV1Common::current_frame
CurrentFrame current_frame
Definition: av1_common_int.h:759
AV1_COMP::optimize_seg_arr
TRELLIS_OPT_TYPE optimize_seg_arr[8]
Definition: encoder.h:2686
av1_count_colors
void av1_count_colors(const uint8_t *src, int stride, int rows, int cols, int *val_count, int *num_colors)
Return the number of colors in src. Used by palette mode.
Definition: intra_mode_search.c:265
macroblock::recalc_luma_mc_data
int recalc_luma_mc_data
Whether to recompute the luma prediction.
Definition: block.h:1099
ModeCosts::intra_uv_mode_cost
int intra_uv_mode_cost[CFL_ALLOWED_TYPES][INTRA_MODES][UV_INTRA_MODES]
Chroma mode cost.
Definition: block.h:525
InterpSearchFlags
Flags related to interpolation filter search.
Definition: encoder.h:1922
ModeCosts::switchable_interp_costs
int switchable_interp_costs[((SWITCHABLE_FILTERS+1) *4)][SWITCHABLE_FILTERS]
switchable_interp_costs
Definition: block.h:641
IntraModeSearchState
struct IntraModeSearchState IntraModeSearchState
Variables related to intra-mode search during inter frame coding.
macroblock
Encoder's parameters related to the current coding block.
Definition: block.h:778
macroblockd::tx_type_map
uint8_t * tx_type_map
Definition: blockd.h:673
macroblockd::mi
MB_MODE_INFO ** mi
Definition: blockd.h:624
ModeCosts::skip_txfm_cost
int skip_txfm_cost[SKIP_CONTEXTS][2]
skip_txfm_cost
Definition: block.h:649