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 
203  BLOCK_SIZE bsize, unsigned int ref_frame_cost,
204  PICK_MODE_CONTEXT *ctx,
205  RD_STATS *this_rd_cost, int64_t best_rd);
206 
237 int64_t av1_rd_pick_intra_sby_mode(const AV1_COMP *const cpi, MACROBLOCK *x,
238  int *rate, int *rate_tokenonly,
239  int64_t *distortion, int *skippable,
240  BLOCK_SIZE bsize, int64_t best_rd,
241  PICK_MODE_CONTEXT *ctx);
242 
272 int64_t av1_rd_pick_intra_sbuv_mode(const AV1_COMP *const cpi, MACROBLOCK *x,
273  int *rate, int *rate_tokenonly,
274  int64_t *distortion, int *skippable,
275  BLOCK_SIZE bsize, TX_SIZE max_tx_size);
276 
279 void av1_count_colors(const uint8_t *src, int stride, int rows, int cols,
280  int *val_count, int *num_colors);
281 
284 void av1_count_colors_highbd(const uint8_t *src8, int stride, int rows,
285  int cols, int bit_depth, int *val_count,
286  int *val_count_8bit, int *num_color_bins,
287  int *num_colors);
288 
291 static AOM_INLINE void init_intra_mode_search_state(
292  IntraModeSearchState *intra_search_state) {
293  memset(intra_search_state, 0, sizeof(*intra_search_state));
294  intra_search_state->rate_uv_intra = INT_MAX;
295 }
296 
307 void set_y_mode_and_delta_angle(const int mode_idx, MB_MODE_INFO *const mbmi);
308 
320 int prune_intra_y_mode(int64_t this_model_rd, int64_t *best_model_rd,
321  int64_t top_intra_model_rd[], int max_model_cnt_allowed,
322  int model_rd_index_for_pruning);
323 
324 #ifdef __cplusplus
325 } // extern "C"
326 #endif
327 
328 #endif // AOM_AV1_ENCODER_INTRA_MODE_SEARCH_H_
SPEED_FEATURES::rt_sf
REAL_TIME_SPEED_FEATURES rt_sf
Definition: speed_features.h:1597
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:476
IntraModeCfg::enable_angle_delta
bool enable_angle_delta
Definition: encoder.h:333
AV1_PRIMARY::frame_probs
FrameProbInfo frame_probs
Definition: encoder.h:2650
encoder.h
Declares top-level encoder structures and functions.
IntraModeCfg::enable_diagonal_intra
bool enable_diagonal_intra
Definition: encoder.h:328
FeatureFlags::interp_filter
InterpFilter interp_filter
Definition: av1_common_int.h:407
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:728
CommonQuantParams::y_dc_delta_q
int y_dc_delta_q
Definition: av1_common_int.h:619
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:515
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:823
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:208
InterpSearchFlags::interp_filter_search_mask
uint16_t interp_filter_search_mask
Definition: encoder.h:1981
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:473
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:671
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:572
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
av1_search_palette_mode_luma
void av1_search_palette_mode_luma(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:976
AOM_PLANE_U
#define AOM_PLANE_U
Definition: aom_image.h:209
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:2881
InterpSearchFlags::default_interp_skip_flags
int default_interp_skip_flags
Definition: encoder.h:1977
AV1_COMP::gf_frame_index
unsigned char gf_frame_index
Definition: encoder.h:2912
macroblock::src_var_info_of_4x4_sub_blocks
Block4x4VarInfo * src_var_info_of_4x4_sub_blocks
Pointer to buffer which caches sub-block variances in a superblock.
Definition: block.h:1252
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:413
IntraModeCfg::enable_directional_intra
bool enable_directional_intra
Definition: encoder.h:323
IntraModeCfg
Encoder flags for intra prediction.
Definition: encoder.h:298
AV1_PRIMARY::gf_group
GF_GROUP gf_group
Definition: encoder.h:2495
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:90
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:1107
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:291
FeatureFlags::allow_screen_content_tools
bool allow_screen_content_tools
Definition: av1_common_int.h:375
macroblock::rdmult
int rdmult
Rate-distortion multiplier.
Definition: block.h:918
macroblockd::left_mbmi
MB_MODE_INFO * left_mbmi
Definition: blockd.h:647
AV1_COMP
Top level encoder structure.
Definition: encoder.h:2664
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:901
AV1_COMP::interp_search_flags
InterpSearchFlags interp_search_flags
Definition: encoder.h:3082
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:874
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:668
MB_MODE_INFO::palette_mode_info
PALETTE_MODE_INFO palette_mode_info
Stores the size and colors of palette mode.
Definition: blockd.h:280
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:976
AV1_COMP::common
AV1_COMMON common
Definition: encoder.h:2707
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:1046
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:882
macroblock::use_mb_mode_cache
int use_mb_mode_cache
Whether to reuse the mode stored in mb_mode_cache.
Definition: block.h:1162
IntraModeCfg::enable_smooth_intra
bool enable_smooth_intra
Definition: encoder.h:311
WinnerModeStats::mbmi
MB_MODE_INFO mbmi
The mbmi used to reconstruct the winner mode.
Definition: block.h:80
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, int discount_color_cost)
Returns the rate cost for luma prediction mode info of intra blocks.
Definition: intra_mode_search_utils.h:504
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:1587
SPEED_FEATURES
Top level speed vs quality trade off data struture.
Definition: speed_features.h:1528
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:1316
ModeCosts::mbmode_cost
int mbmode_cost[4][INTRA_MODES]
Luma mode cost for inter frame.
Definition: block.h:529
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:325
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:368
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:1112
AV1Common::quant_params
CommonQuantParams quant_params
Definition: av1_common_int.h:922
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:1155
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:113
CommonQuantParams::base_qindex
int base_qindex
Definition: av1_common_int.h:613
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:216
AV1Common
Top level common structure used by both encoder and decoder.
Definition: av1_common_int.h:750
SPEED_FEATURES::intra_sf
INTRA_MODE_SPEED_FEATURES intra_sf
Definition: speed_features.h:1572
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:1256
macroblock::txfm_search_info
TxfmSearchInfo txfm_search_info
Results of the txfm searches that have been done.
Definition: block.h:1212
IntraModeCfg::enable_paeth_intra
bool enable_paeth_intra
Definition: encoder.h:315
macroblock::pred_sse
unsigned int pred_sse[REF_FRAMES]
SSE of the current predictor.
Definition: block.h:1231
ModeCosts::y_mode_costs
int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES]
Luma mode cost for intra frame.
Definition: block.h:531
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:210
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:1165
macroblockd::mi_row
int mi_row
Definition: blockd.h:582
AV1_COMP::ppi
AV1_PRIMARY * ppi
Definition: encoder.h:2668
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:326
macroblock::e_mbd
MACROBLOCKD e_mbd
Decoder's view of current coding block.
Definition: block.h:831
speed_features.h
macroblock::winner_mode_count
int winner_mode_count
Tracks how many winner modes there are.
Definition: block.h:1109
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:2712
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:319
macroblock::mode_costs
ModeCosts mode_costs
The rate needed to signal a mode to the bitstream.
Definition: block.h:932
AV1_PRIMARY::fn_ptr
aom_variance_fn_ptr_t fn_ptr[BLOCK_SIZES_ALL]
Definition: encoder.h:2572
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:1094
SPEED_FEATURES::interp_sf
INTERP_FILTER_SPEED_FEATURES interp_sf
Definition: speed_features.h:1567
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:542
intra_mode_search.h
Declares high level functions to search through intra modes.
AV1Common::features
FeatureFlags features
Definition: av1_common_int.h:905
AV1Common::current_frame
CurrentFrame current_frame
Definition: av1_common_int.h:754
AV1_COMP::optimize_seg_arr
TRELLIS_OPT_TYPE optimize_seg_arr[8]
Definition: encoder.h:2718
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:307
macroblock::recalc_luma_mc_data
int recalc_luma_mc_data
Whether to recompute the luma prediction.
Definition: block.h:1153
ModeCosts::intra_uv_mode_cost
int intra_uv_mode_cost[CFL_ALLOWED_TYPES][INTRA_MODES][UV_INTRA_MODES]
Chroma mode cost.
Definition: block.h:533
InterpSearchFlags
Flags related to interpolation filter search.
Definition: encoder.h:1972
ModeCosts::switchable_interp_costs
int switchable_interp_costs[((SWITCHABLE_FILTERS+1) *4)][SWITCHABLE_FILTERS]
switchable_interp_costs
Definition: block.h:649
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:813
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:657