TUT HEVC Encoder
Functions
encode_coding_tree.c File Reference
#include "encode_coding_tree.h"
#include "cabac.h"
#include "context.h"
#include "cu.h"
#include "encoder.h"
#include "extras/crypto.h"
#include "global.h"
#include "imagelist.h"
#include "inter.h"
#include "intra.h"
#include "kvazaar.h"
#include "kvz_math.h"
#include "strategyselector.h"
#include "tables.h"
#include "videoframe.h"
Include dependency graph for encode_coding_tree.c:

Functions

void kvz_encode_last_significant_xy (cabac_data_t *const cabac, uint8_t lastpos_x, uint8_t lastpos_y, uint8_t width, uint8_t height, uint8_t type, uint8_t scan, double *bits_out)
 Encode (X,Y) position of the last significant coefficient. More...
 
static void encode_transform_unit (encoder_state_t *const state, int x, int y, int depth)
 
static void encode_transform_coeff (encoder_state_t *const state, int32_t x, int32_t y, int8_t depth, int8_t tr_depth, uint8_t parent_coeff_u, uint8_t parent_coeff_v)
 
void kvz_encode_inter_prediction_unit (encoder_state_t *const state, cabac_data_t *const cabac, const cu_info_t *const cur_cu, int x, int y, int width, int height, int depth, lcu_t *lcu, double *bits_out)
 
static uint8_t intra_mode_encryption (encoder_state_t *const state, uint8_t intra_pred_mode)
 
static void encode_intra_coding_unit (encoder_state_t *const state, cabac_data_t *const cabac, const cu_info_t *const cur_cu, int x, int y, int depth, lcu_t *lcu, double *bits_out)
 
double kvz_encode_part_mode (encoder_state_t *const state, cabac_data_t *const cabac, const cu_info_t *const cur_cu, int depth)
 
void kvz_encode_coding_tree (encoder_state_t *const state, uint16_t x, uint16_t y, uint8_t depth)
 
double kvz_mock_encode_coding_unit (encoder_state_t *const state, cabac_data_t *cabac, int x, int y, int depth, lcu_t *lcu, cu_info_t *cur_cu)
 
void kvz_encode_mvd (encoder_state_t *const state, cabac_data_t *cabac, int32_t mvd_hor, int32_t mvd_ver, double *bits_out)
 

Function Documentation

◆ encode_intra_coding_unit()

static void encode_intra_coding_unit ( encoder_state_t *const  state,
cabac_data_t *const  cabac,
const cu_info_t *const  cur_cu,
int  x,
int  y,
int  depth,
lcu_t lcu,
double *  bits_out 
)
static

Table 9-35 - Binarization for intra_chroma_pred_mode intra_chroma_pred_mode bin_string 4 0 0 100 1 101 2 110 3 111 Table 9-37 - Assignment of ctxInc to syntax elements with context coded bins intra_chroma_pred_mode[][] = 0, bypass, bypass

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

◆ encode_transform_coeff()

static void encode_transform_coeff ( encoder_state_t *const  state,
int32_t  x,
int32_t  y,
int8_t  depth,
int8_t  tr_depth,
uint8_t  parent_coeff_u,
uint8_t  parent_coeff_v 
)
static
Parameters
encoder
x_puPrediction units' x coordinate.
y_puPrediction units' y coordinate.
depthDepth from LCU.
tr_depthDepth from last CU.
parent_coeff_uWhat was signaled at previous level for cbf_cb.
parent_coeff_vWhat was signlaed at previous level for cbf_cr.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ encode_transform_unit()

static void encode_transform_unit ( encoder_state_t *const  state,
int  x,
int  y,
int  depth 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ intra_mode_encryption()

static uint8_t intra_mode_encryption ( encoder_state_t *const  state,
uint8_t  intra_pred_mode 
)
inlinestatic
Here is the caller graph for this function:

◆ kvz_encode_coding_tree()

void kvz_encode_coding_tree ( encoder_state_t *const  state,
uint16_t  x,
uint16_t  y,
uint8_t  depth 
)

< are we in any border CU

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

◆ kvz_encode_inter_prediction_unit()

void kvz_encode_inter_prediction_unit ( encoder_state_t *const  state,
cabac_data_t *const  cabac,
const cu_info_t *const  cur_cu,
int  x,
int  y,
int  width,
int  height,
int  depth,
lcu_t lcu,
double *  bits_out 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_encode_last_significant_xy()

void kvz_encode_last_significant_xy ( cabac_data_t *const  cabac,
uint8_t  lastpos_x,
uint8_t  lastpos_y,
uint8_t  width,
uint8_t  height,
uint8_t  type,
uint8_t  scan,
double *  bits_out 
)
Parameters
lastpos_xX component of last coefficient
lastpos_yY component of last coefficient
widthBlock width
heightBlock height
typeplane type / luminance or chrominance
scanscan type (diag, hor, ver)

This method encodes the X and Y component within a block of the last significant coefficient.

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

◆ kvz_encode_mvd()

void kvz_encode_mvd ( encoder_state_t *const  state,
cabac_data_t cabac,
int32_t  mvd_hor,
int32_t  mvd_ver,
double *  bits_out 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_encode_part_mode()

double kvz_encode_part_mode ( encoder_state_t *const  state,
cabac_data_t *const  cabac,
const cu_info_t *const  cur_cu,
int  depth 
)
Here is the caller graph for this function:

◆ kvz_mock_encode_coding_unit()

double kvz_mock_encode_coding_unit ( encoder_state_t *const  state,
cabac_data_t cabac,
int  x,
int  y,
int  depth,
lcu_t lcu,
cu_info_t cur_cu 
)

< are we in any border CU

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