intra_mode_search.h File Reference

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

`#include <stdbool.h>`
`#include "av1/encoder/encoder.h"`

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.

## 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.
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.
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.
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.
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.
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.
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.
bool | av1_count_colors_with_threshold (const uint8_t *src, int stride, int rows, int cols, int num_colors_threshold, int *num_colors)
| Set *num_colors to the number of colors in src.
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.

## Detailed Description

Declares high level functions to search through intra modes.

## Function Documentation

## av1_count_colors_with_threshold()

bool av1_count_colors_with_threshold | ( | const uint8_t * | src,
|  | int | stride,
|  | int | rows,
|  | int | cols,
|  | int | num_colors_threshold,
|  | int * | num_colors )

Set *num_colors to the number of colors in src.

Exits early if the number of colors exceeds a specified threshold. Used by screen content detection mode 2.

Returns
  Returns true if the number of colors does not exceed the threshold.

Note
  If the function returns true, *num_colors is accurate (and is <= num_colors_threshold). If the function returns false, the function exited early, and *num_colors may be smaller than the actual number of colors (and is > num_colors_threshold).

References av1_count_colors_with_threshold().

Referenced by av1_count_colors_with_threshold().

## 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_idx | mode index in intra mode decision process.
  [in] | mbmi | Pointer to structure holding the mode info for the current macroblock.
  [in] | reorder_delta_angle_eval | Indicates whether to reorder the evaluation of delta angle modes.

References MB_MODE_INFO::angle_delta, MB_MODE_INFO::mode, and set_y_mode_and_delta_angle().

Referenced by av1_rd_pick_intra_sby_mode(), search_intra_modes_in_interframe(), and set_y_mode_and_delta_angle().