TUT HEVC Encoder
|
#include "intra.h"
#include <stdlib.h>
#include "image.h"
#include "kvz_math.h"
#include "strategies/strategies-intra.h"
#include "tables.h"
#include "transform.h"
#include "videoframe.h"
Functions | |
int8_t | kvz_intra_get_dir_luma_predictor (const uint32_t x, const uint32_t y, int8_t *preds, const cu_info_t *const cur_pu, const cu_info_t *const left_pu, const cu_info_t *const above_pu) |
Function for deriving intra luma predictions. | |
static void | intra_filter_reference (int_fast8_t log2_width, kvz_intra_references *refs) |
static void | intra_post_process_angular (unsigned width, unsigned stride, const kvz_pixel *ref, kvz_pixel *block) |
static void | intra_pred_dc (const int_fast8_t log2_width, const kvz_pixel *const ref_top, const kvz_pixel *const ref_left, kvz_pixel *const out_block) |
Generage planar prediction. | |
void | kvz_intra_predict (kvz_intra_references *refs, int_fast8_t log2_width, int_fast8_t mode, color_t color, kvz_pixel *dst, bool filter_boundary) |
Generate intra predictions. | |
void | kvz_intra_build_reference_any (const int_fast8_t log2_width, const color_t color, const vector2d_t *const luma_px, const vector2d_t *const pic_px, const lcu_t *const lcu, kvz_intra_references *const refs) |
void | kvz_intra_build_reference_inner (const int_fast8_t log2_width, const color_t color, const vector2d_t *const luma_px, const vector2d_t *const pic_px, const lcu_t *const lcu, kvz_intra_references *const refs) |
void | kvz_intra_build_reference (const int_fast8_t log2_width, const color_t color, const vector2d_t *const luma_px, const vector2d_t *const pic_px, const lcu_t *const lcu, kvz_intra_references *const refs) |
Generage angular predictions. | |
static void | intra_recon_tb_leaf (encoder_state_t *const state, int x, int y, int depth, int8_t intra_mode, lcu_t *lcu, color_t color) |
void | kvz_intra_recon_cu (encoder_state_t *const state, int x, int y, int depth, int8_t mode_luma, int8_t mode_chroma, cu_info_t *cur_cu, lcu_t *lcu) |
Reconstruct an intra CU. | |
Variables | |
static const uint8_t | num_ref_pixels_top [16][16] |
static const uint8_t | num_ref_pixels_left [16][16] |
|
static |
|
static |
|
static |
log2_width | Log2 of width, range 2..5. |
in_ref_above | Pointer to -1 index of above reference, length=width*2+1. |
in_ref_left | Pointer to -1 index of left reference, length=width*2+1. |
dst | Buffer of size width*width. |
|
static |
void kvz_intra_build_reference | ( | const int_fast8_t | log2_width, |
const color_t | color, | ||
const vector2d_t *const | luma_px, | ||
const vector2d_t *const | pic_px, | ||
const lcu_t *const | lcu, | ||
kvz_intra_references *const | refs ) |
width | Width in pixels, range 4..32. |
color | What color pixels to use. |
luma_px | Luma coordinates of the prediction block. |
pic_px | Picture dimensions in luma pixels. |
lcu | LCU struct. |
out_left_ref | Left reference pixels, index 0 is the top-left. |
out_top_ref | Top reference pixels, index 0 is the top-left. |
void kvz_intra_build_reference_any | ( | const int_fast8_t | log2_width, |
const color_t | color, | ||
const vector2d_t *const | luma_px, | ||
const vector2d_t *const | pic_px, | ||
const lcu_t *const | lcu, | ||
kvz_intra_references *const | refs ) |
void kvz_intra_build_reference_inner | ( | const int_fast8_t | log2_width, |
const color_t | color, | ||
const vector2d_t *const | luma_px, | ||
const vector2d_t *const | pic_px, | ||
const lcu_t *const | lcu, | ||
kvz_intra_references *const | refs ) |
int8_t kvz_intra_get_dir_luma_predictor | ( | const uint32_t | x, |
const uint32_t | y, | ||
int8_t * | preds, | ||
const cu_info_t *const | cur_pu, | ||
const cu_info_t *const | left_pu, | ||
const cu_info_t *const | above_pu ) |
x | x-coordinate of the PU in pixels |
y | y-coordinate of the PU in pixels |
preds | output buffer for 3 predictions |
cur_pu | PU to check |
left_pu | PU to the left of cur_pu |
above_pu | PU above cur_pu |
void kvz_intra_predict | ( | kvz_intra_references * | refs, |
int_fast8_t | log2_width, | ||
int_fast8_t | mode, | ||
color_t | color, | ||
kvz_pixel * | dst, | ||
bool | filter_boundary ) |
refs | Reference pixels used for the prediction. |
log2_width | Width of the predicted block. |
mode | Intra mode used for the prediction. |
color | Color of the prediction. |
dst | Buffer for the predicted pixels. |
filter_boundary | Whether to filter the boundary on modes 10 and 26. |
void kvz_intra_recon_cu | ( | encoder_state_t *const | state, |
int | x, | ||
int | y, | ||
int | depth, | ||
int8_t | mode_luma, | ||
int8_t | mode_chroma, | ||
cu_info_t * | cur_cu, | ||
lcu_t * | lcu ) |
state | encoder state |
x | x-coordinate of the CU in luma pixels |
y | y-coordinate of the CU in luma pixels |
depth | depth in the CU tree |
mode_luma | intra mode for luma, or -1 to skip luma recon |
mode_chroma | intra mode for chroma, or -1 to skip chroma recon |
cur_cu | pointer to the CU, or NULL to fetch CU from LCU |
lcu | containing LCU |
|
static |
|
static |