AOMedia AV1 Codec
intra_mode_search.h File Reference

Declares high level functions to search through intra modes. More...

Go to the source code of this file.

Data Structures

struct  IntraModeSearchState
 Variables related to intra-mode search during inter frame coding. More...
 

Typedefs

typedef struct IntraModeSearchState IntraModeSearchState
 Variables related to intra-mode search during inter frame coding. More...
 

Functions

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. More...
 
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. More...
 
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. More...
 
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. More...
 
int64_t av1_rd_pick_intra_sby_mode (const AV1_COMP *const cpi, MACROBLOCK *x, int *rate, int *rate_tokenonly, int64_t *distortion, uint8_t *skippable, BLOCK_SIZE bsize, int64_t best_rd, PICK_MODE_CONTEXT *ctx)
 Perform intra-mode search on luma channels for intra frames. More...
 
int64_t av1_rd_pick_intra_sbuv_mode (const AV1_COMP *const cpi, MACROBLOCK *x, int *rate, int *rate_tokenonly, int64_t *distortion, uint8_t *skippable, BLOCK_SIZE bsize, TX_SIZE max_tx_size)
 Perform intra-mode search on chroma channels. More...
 
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.
 
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.
 
static void init_intra_mode_search_state (IntraModeSearchState *intra_search_state)
 Initializes the IntraModeSearchState struct.
 
void set_y_mode_and_delta_angle (const int mode_idx, MB_MODE_INFO *const mbmi, int reorder_delta_angle_eval)
 set the luma intra mode and delta angles for a given mode index. The total number of luma intra mode is LUMA_MODE_COUNT = 61. The first 13 modes are from DC_PRED to PAETH_PRED, followed by directional modes. Each of the main 8 directional modes have 6 = MAX_ANGLE_DELTA * 2 delta angles. More...
 
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. More...
 

Detailed Description

Declares high level functions to search through intra modes.

Function Documentation

◆ set_y_mode_and_delta_angle()

void set_y_mode_and_delta_angle ( const int  mode_idx,
MB_MODE_INFO *const  mbmi,
int  reorder_delta_angle_eval 
)

set the luma intra mode and delta angles for a given mode index. The total number of luma intra mode is LUMA_MODE_COUNT = 61. The first 13 modes are from DC_PRED to PAETH_PRED, followed by directional modes. Each of the main 8 directional modes have 6 = MAX_ANGLE_DELTA * 2 delta angles.

Parameters
[in]mode_idxmode index in intra mode decision process.
[in]mbmiPointer to structure holding the mode info for the current macroblock.
[in]reorder_delta_angle_evalIndicates whether to reorder the evaluation of delta angle modes.

References MB_MODE_INFO::angle_delta, and MB_MODE_INFO::mode.

Referenced by av1_rd_pick_intra_sby_mode(), and search_intra_modes_in_interframe().

◆ 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.

Parameters
[in]this_model_rdmodel rd for current mode.
[in]best_model_rdBest model RD seen for this block so far.
[in]top_intra_model_rdTop intra model RD seen for this block so far.
[in]max_model_cnt_allowedThe maximum number of top intra model RD allowed.
[in]model_rd_index_for_pruningIndex of the candidate used for pruning based on model rd.

Referenced by av1_handle_intra_y_mode(), and av1_rd_pick_intra_sby_mode().