TUT HEVC Encoder
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
search.h File Reference

Compression of a single coding tree unit (CTU). More...

#include "cu.h"
#include "encoderstate.h"
#include "global.h"
#include "image.h"
#include "constraint.h"
Include dependency graph for search.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  unit_stats_map_t
 Data collected during search processes. More...
 

Macros

#define MAX_UNIT_STATS_MAP_SIZE   MAX(MAX_REF_PIC_COUNT, MRG_MAX_NUM_CANDS)
 
#define KVZ_LUMA_MULT   0.8
 
#define KVZ_CHROMA_MULT   1.5
 

Typedefs

typedef struct unit_stats_map_t unit_stats_map_t
 Data collected during search processes.
 

Functions

void kvz_sort_modes (int8_t *__restrict modes, double *__restrict costs, uint8_t length)
 Sort modes and costs to ascending order according to costs.
 
void kvz_sort_keys_by_cost (unit_stats_map_t *__restrict map)
 Sort keys (indices) to ascending order according to costs.
 
void kvz_search_lcu (encoder_state_t *state, int x, int y, const yuv_t *hor_buf, const yuv_t *ver_buf)
 Search LCU for modes.
 
double kvz_cu_rd_cost_luma (const encoder_state_t *const state, const int x_px, const int y_px, const int depth, const cu_info_t *const pred_cu, lcu_t *const lcu)
 Calculate RD cost for a Coding Unit.
 
double kvz_cu_rd_cost_chroma (const encoder_state_t *const state, const int x_px, const int y_px, const int depth, const cu_info_t *const pred_cu, lcu_t *const lcu)
 
void kvz_lcu_fill_trdepth (lcu_t *lcu, int x_px, int y_px, int depth, int tr_depth)
 
void kvz_intra_recon_lcu_luma (encoder_state_t *const state, int x, int y, int depth, int8_t intra_mode, cu_info_t *cur_cu, lcu_t *lcu)
 
void kvz_intra_recon_lcu_chroma (encoder_state_t *const state, int x, int y, int depth, int8_t intra_mode, cu_info_t *cur_cu, lcu_t *lcu)
 

Macro Definition Documentation

◆ KVZ_CHROMA_MULT

#define KVZ_CHROMA_MULT   1.5

◆ KVZ_LUMA_MULT

#define KVZ_LUMA_MULT   0.8

◆ MAX_UNIT_STATS_MAP_SIZE

#define MAX_UNIT_STATS_MAP_SIZE   MAX(MAX_REF_PIC_COUNT, MRG_MAX_NUM_CANDS)

Typedef Documentation

◆ unit_stats_map_t

   The intended use is to collect statistics of the
   searched coding/prediction units. Data related to
   a specific unit is found at index i. The arrays
   should be indexed by elements of the "keys" array
   that will be sorted by the RD costs of the units.         

Function Documentation

◆ kvz_cu_rd_cost_chroma()

double kvz_cu_rd_cost_chroma ( const encoder_state_t *const  state,
const int  x_px,
const int  y_px,
const int  depth,
const cu_info_t *const  pred_cu,
lcu_t *const  lcu 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_cu_rd_cost_luma()

double kvz_cu_rd_cost_luma ( const encoder_state_t *const  state,
const int  x_px,
const int  y_px,
const int  depth,
const cu_info_t *const  pred_cu,
lcu_t *const  lcu 
)
Returns
Cost of block
Parameters
ref_cuCU used for prediction parameters.

Calculates the RDO cost of a single CU that will not be split further. Takes into account SSD of reconstruction and the cost of encoding whatever prediction unit data needs to be coded.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_intra_recon_lcu_chroma()

void kvz_intra_recon_lcu_chroma ( encoder_state_t *const  state,
int  x,
int  y,
int  depth,
int8_t  intra_mode,
cu_info_t cur_cu,
lcu_t lcu 
)

◆ kvz_intra_recon_lcu_luma()

void kvz_intra_recon_lcu_luma ( encoder_state_t *const  state,
int  x,
int  y,
int  depth,
int8_t  intra_mode,
cu_info_t cur_cu,
lcu_t lcu 
)

◆ kvz_lcu_fill_trdepth()

void kvz_lcu_fill_trdepth ( lcu_t lcu,
int  x_px,
int  y_px,
int  depth,
int  tr_depth 
)
Here is the caller graph for this function:

◆ kvz_search_lcu()

void kvz_search_lcu ( encoder_state_t *const  state,
const int  x,
const int  y,
const yuv_t *const  hor_buf,
const yuv_t *const  ver_buf 
)
  • Best mode gets copied to current picture.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_sort_keys_by_cost()

void kvz_sort_keys_by_cost ( unit_stats_map_t *__restrict  map)
Here is the caller graph for this function:

◆ kvz_sort_modes()

void kvz_sort_modes ( int8_t *__restrict  modes,
double *__restrict  costs,
uint8_t  length 
)
Here is the caller graph for this function: