TUT HEVC Encoder
|
Top level of the encoder implementation. More...
#include "bitstream.h"
#include "cabac.h"
#include "cu.h"
#include "encoder.h"
#include "global.h"
#include "image.h"
#include "imagelist.h"
#include "kvazaar.h"
#include "tables.h"
#include "threadqueue.h"
#include "videoframe.h"
#include "extras/crypto.h"
Go to the source code of this file.
Data Structures | |
struct | lcu_stats_t |
struct | encoder_state_config_frame_t |
struct | encoder_state_config_tile_t |
struct | encoder_state_config_slice_t |
struct | encoder_state_config_wfrow_t |
struct | lcu_order_element |
struct | encoder_state_t |
Macros | |
#define | C1FLAG_NUMBER 8 |
#define | C2FLAG_NUMBER 1 |
#define | OFFSET_VER_BUF(position_x, position_y, cur_pic, i) ((position_y) + i + ((position_x)/LCU_WIDTH - 1) * (cur_pic)->height) |
#define | OFFSET_VER_BUF_C(position_x, position_y, cur_pic, i) ((position_y/2) + i + ((position_x)/LCU_WIDTH - 1) * (cur_pic)->height / 2) |
#define | OFFSET_HOR_BUF(position_x, position_y, cur_pic, i) ((position_x) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width) |
#define | OFFSET_HOR_BUF_C(position_x, position_y, cur_pic, i) ((position_x/2) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width / 2) |
Typedefs | |
typedef struct lcu_stats_t | lcu_stats_t |
typedef struct encoder_state_config_frame_t | encoder_state_config_frame_t |
typedef struct encoder_state_config_tile_t | encoder_state_config_tile_t |
typedef struct encoder_state_config_slice_t | encoder_state_config_slice_t |
typedef struct encoder_state_config_wfrow_t | encoder_state_config_wfrow_t |
typedef struct lcu_order_element | lcu_order_element_t |
typedef struct encoder_state_t | encoder_state_t |
Enumerations | |
enum | encoder_state_type { ENCODER_STATE_TYPE_INVALID = 'i' , ENCODER_STATE_TYPE_MAIN = 'M' , ENCODER_STATE_TYPE_SLICE = 'S' , ENCODER_STATE_TYPE_TILE = 'T' , ENCODER_STATE_TYPE_WAVEFRONT_ROW = 'W' } |
Functions | |
void | kvz_encode_one_frame (encoder_state_t *const state, kvz_picture *frame) |
void | kvz_encoder_prepare (encoder_state_t *state) |
Prepare the encoder state for encoding the next frame. More... | |
int | kvz_encoder_state_match_children_of_previous_frame (encoder_state_t *const state) |
coeff_scan_order_t | kvz_get_scan_order (int8_t cu_type, int intra_mode, int depth) |
void | kvz_encoder_create_ref_lists (const encoder_state_t *const state) |
Generate reference picture lists. More... | |
lcu_stats_t * | kvz_get_lcu_stats (encoder_state_t *state, int lcu_x, int lcu_y) |
int | kvz_get_cu_ref_qp (const encoder_state_t *state, int x, int y, int last_qp) |
static bool | encoder_state_must_write_vps (const encoder_state_t *state) |
Whether the parameter sets should be written with the current frame. More... | |
static bool | is_last_cu_in_qg (const encoder_state_t *state, int x, int y, int depth) |
Returns true if the CU is the last CU in its containing quantization group. More... | |
Variables | |
static const uint8_t | g_group_idx [32] |
static const uint8_t | g_min_in_group [10] |
#define C1FLAG_NUMBER 8 |
#define C2FLAG_NUMBER 1 |
#define OFFSET_HOR_BUF | ( | position_x, | |
position_y, | |||
cur_pic, | |||
i | |||
) | ((position_x) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width) |
#define OFFSET_HOR_BUF_C | ( | position_x, | |
position_y, | |||
cur_pic, | |||
i | |||
) | ((position_x/2) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width / 2) |
#define OFFSET_VER_BUF | ( | position_x, | |
position_y, | |||
cur_pic, | |||
i | |||
) | ((position_y) + i + ((position_x)/LCU_WIDTH - 1) * (cur_pic)->height) |
#define OFFSET_VER_BUF_C | ( | position_x, | |
position_y, | |||
cur_pic, | |||
i | |||
) | ((position_y/2) + i + ((position_x)/LCU_WIDTH - 1) * (cur_pic)->height / 2) |
typedef struct encoder_state_config_frame_t encoder_state_config_frame_t |
typedef struct encoder_state_config_slice_t encoder_state_config_slice_t |
typedef struct encoder_state_config_tile_t encoder_state_config_tile_t |
typedef struct encoder_state_config_wfrow_t encoder_state_config_wfrow_t |
typedef struct encoder_state_t encoder_state_t |
typedef struct lcu_order_element lcu_order_element_t |
typedef struct lcu_stats_t lcu_stats_t |
enum encoder_state_type |
|
inlinestatic |
|
inlinestatic |
state | encoder state |
x | x-coordinate of the left edge of the CU |
y | y-cooradinate of the top edge of the CU |
depth | depth in the CU tree |
void kvz_encode_one_frame | ( | encoder_state_t *const | state, |
kvz_picture * | frame | ||
) |
void kvz_encoder_create_ref_lists | ( | const encoder_state_t *const | state | ) |
state | main encoder state |
void kvz_encoder_prepare | ( | encoder_state_t * | state | ) |
int kvz_encoder_state_match_children_of_previous_frame | ( | encoder_state_t *const | state | ) |
int kvz_get_cu_ref_qp | ( | const encoder_state_t * | state, |
int | x, | ||
int | y, | ||
int | last_qp | ||
) |
lcu_stats_t * kvz_get_lcu_stats | ( | encoder_state_t * | state, |
int | lcu_x, | ||
int | lcu_y | ||
) |
coeff_scan_order_t kvz_get_scan_order | ( | int8_t | cu_type, |
int | intra_mode, | ||
int | depth | ||
) |
|
static |
|
static |