TUT HEVC Encoder
|
Inter prediction. More...
#include "cu.h"
#include "encoderstate.h"
#include "global.h"
#include "image.h"
#include "kvazaar.h"
Go to the source code of this file.
Data Structures | |
struct | inter_merge_cand_t |
Functions | |
void | kvz_inter_recon_cu (const encoder_state_t *const state, lcu_t *lcu, int32_t x, int32_t y, int32_t width, bool predict_luma, bool predict_chroma) |
Reconstruct a single CU. More... | |
void | kvz_inter_pred_pu (const encoder_state_t *const state, lcu_t *lcu, int32_t x, int32_t y, int32_t width, bool predict_luma, bool predict_chroma, int i_pu) |
Predict a single PU. More... | |
void | kvz_inter_recon_bipred (const encoder_state_t *const state, const kvz_picture *ref1, const kvz_picture *ref2, int32_t xpos, int32_t ypos, int32_t width, int32_t height, int16_t mv_param[2][2], lcu_t *lcu, bool predict_luma, bool predict_chroma) |
Reconstruct bi-pred inter PU. More... | |
void | kvz_inter_get_mv_cand (const encoder_state_t *const state, int32_t x, int32_t y, int32_t width, int32_t height, int16_t mv_cand[2][2], const cu_info_t *cur_cu, lcu_t *lcu, int8_t reflist) |
Get MV prediction for current block. More... | |
void | kvz_inter_get_mv_cand_cua (const encoder_state_t *const state, int32_t x, int32_t y, int32_t width, int32_t height, int16_t mv_cand[2][2], const cu_info_t *cur_cu, int8_t reflist) |
Get MV prediction for current block using state->tile->frame->cu_array. More... | |
uint8_t | kvz_inter_get_merge_cand (const encoder_state_t *const state, int32_t x, int32_t y, int32_t width, int32_t height, bool use_a1, bool use_b1, inter_merge_cand_t mv_cand[5], lcu_t *lcu) |
Get merge predictions for current block. More... | |
uint8_t kvz_inter_get_merge_cand | ( | const encoder_state_t *const | state, |
int32_t | x, | ||
int32_t | y, | ||
int32_t | width, | ||
int32_t | height, | ||
bool | use_a1, | ||
bool | use_b1, | ||
inter_merge_cand_t | mv_cand[5], | ||
lcu_t * | lcu | ||
) |
state | the encoder state |
x | block x position in SCU |
y | block y position in SCU |
width | block width |
height | block height |
use_a1 | true, if candidate a1 can be used |
use_b1 | true, if candidate b1 can be used |
mv_cand | Returns the merge candidates. |
lcu | lcu containing the block |
void kvz_inter_get_mv_cand | ( | const encoder_state_t *const | state, |
int32_t | x, | ||
int32_t | y, | ||
int32_t | width, | ||
int32_t | height, | ||
int16_t | mv_cand[2][2], | ||
const cu_info_t *const | cur_cu, | ||
lcu_t * | lcu, | ||
int8_t | reflist | ||
) |
state | encoder state |
x | block x position in pixels |
y | block y position in pixels |
width | block width in pixels |
height | block height in pixels |
mv_cand | Return the motion vector candidates. |
cur_cu | current CU |
lcu | current LCU |
reflist | reflist index (either 0 or 1) |
void kvz_inter_get_mv_cand_cua | ( | const encoder_state_t *const | state, |
int32_t | x, | ||
int32_t | y, | ||
int32_t | width, | ||
int32_t | height, | ||
int16_t | mv_cand[2][2], | ||
const cu_info_t * | cur_cu, | ||
int8_t | reflist | ||
) |
state | encoder state |
x | block x position in pixels |
y | block y position in pixels |
width | block width in pixels |
height | block height in pixels |
mv_cand | Return the motion vector candidates. |
cur_cu | current CU |
reflist | reflist index (either 0 or 1) |
void kvz_inter_pred_pu | ( | const encoder_state_t *const | state, |
lcu_t * | lcu, | ||
int32_t | x, | ||
int32_t | y, | ||
int32_t | width, | ||
bool | predict_luma, | ||
bool | predict_chroma, | ||
int | i_pu | ||
) |
The PU may use either uniprediction or biprediction.
state | encoder state |
lcu | containing LCU |
x | x-coordinate of the CU in pixels |
y | y-coordinate of the CU in pixels |
width | CU width |
predict_luma | Enable or disable luma prediction for this call. |
predict_chroma | Enable or disable chroma prediction for this call. |
i_pu | Index of the PU. Always zero for 2Nx2N. Used for SMP+AMP. |
void kvz_inter_recon_bipred | ( | const encoder_state_t *const | state, |
const kvz_picture * | ref1, | ||
const kvz_picture * | ref2, | ||
int32_t | pu_x, | ||
int32_t | pu_y, | ||
int32_t | pu_w, | ||
int32_t | pu_h, | ||
int16_t | mv_param[2][2], | ||
lcu_t * | lcu, | ||
bool | predict_luma, | ||
bool | predict_chroma | ||
) |
state | encoder state |
ref1 | reference picture to copy the data from |
ref2 | other reference picture to copy the data from |
pu_x | PU x position |
pu_y | PU y position |
width | PU width |
height | PU height |
mv_param | motion vectors |
lcu | destination lcu |
predict_luma | Enable or disable luma prediction for this call. |
predict_chroma | Enable or disable chroma prediction for this call. |
void kvz_inter_recon_cu | ( | const encoder_state_t *const | state, |
lcu_t * | lcu, | ||
int32_t | x, | ||
int32_t | y, | ||
int32_t | width, | ||
bool | predict_luma, | ||
bool | predict_chroma | ||
) |
The CU may consist of multiple PUs, each of which can use either uniprediction or biprediction.
state | encoder state |
lcu | containing LCU |
x | x-coordinate of the CU in pixels |
y | y-coordinate of the CU in pixels |
width | CU width |
predict_luma | Enable or disable luma prediction for this call. |
predict_chroma | Enable or disable chroma prediction for this call. |