|
TUT HEVC Encoder
|
#include "transform.h"#include "image.h"#include "kvazaar.h"#include "rdo.h"#include "strategies/strategies-dct.h"#include "strategies/strategies-quant.h"#include "strategies/strategies-picture.h"#include "tables.h"Typedefs | |
| typedef enum rdpcm_dir | rdpcm_dir |
| RDPCM direction. | |
Enumerations | |
| enum | rdpcm_dir { RDPCM_VER = 0 , RDPCM_HOR = 1 } |
| RDPCM direction. More... | |
Variables | |
| const uint8_t | kvz_g_chroma_scale [58] |
|
static |
Copies the reference pixels directly to reconstruction and the residual directly to coefficients. Used when cu_transquant_bypass_flag is set. Parameters pred_in and rec_out may be aliased.
| width | Transform width. |
| in_stride | Stride for ref_in and pred_in |
| out_stride | Stride for rec_out. |
| ref_in | Reference pixels. |
| pred_in | Predicted pixels. |
| rec_out | Returns the reconstructed pixels. |
| coeff_out | Returns the coefficients used for reconstruction of rec_out. |
| void kvz_itransform2d | ( | const encoder_control_t *const | encoder, |
| int16_t * | block, | ||
| int16_t * | coeff, | ||
| int8_t | block_size, | ||
| color_t | color, | ||
| cu_type_t | type | ||
| ) |
| void kvz_itransformskip | ( | const encoder_control_t *const | encoder, |
| int16_t * | block, | ||
| int16_t * | coeff, | ||
| int8_t | block_size | ||
| ) |
| coeff | input data (transform coefficients) |
| block | output data (residual) |
| block_size | width of transform |
| void kvz_quantize_lcu_residual | ( | encoder_state_t *const | state, |
| const bool | luma, | ||
| const bool | chroma, | ||
| const int32_t | x, | ||
| const int32_t | y, | ||
| const uint8_t | depth, | ||
| cu_info_t * | cur_pu, | ||
| lcu_t * | lcu, | ||
| bool | early_skip | ||
| ) |
Processes the TU tree recursively.
Inputs are:
Outputs are:
| int kvz_quantize_residual_trskip | ( | encoder_state_t *const | state, |
| const cu_info_t *const | cur_cu, | ||
| const int | width, | ||
| const color_t | color, | ||
| const coeff_scan_order_t | scan_order, | ||
| int8_t * | trskip_out, | ||
| const int | in_stride, | ||
| const int | out_stride, | ||
| const kvz_pixel *const | ref_in, | ||
| const kvz_pixel *const | pred_in, | ||
| kvz_pixel * | rec_out, | ||
| coeff_t * | coeff_out | ||
| ) |
Using this function saves one step of quantization and inverse quantization compared to doing the decision separately from the actual operation.
| width | Transform width. |
| color | Color. |
| scan_order | Coefficient scan order. |
| trskip_out | Whether transform skip is used. |
| stride | Stride for ref_in, pred_in and rec_out. |
| ref_in | Reference pixels. |
| pred_in | Predicted pixels. |
| rec_out | Reconstructed pixels. |
| coeff_out | Coefficients used for reconstruction of rec_out. |
| void kvz_transform2d | ( | const encoder_control_t *const | encoder, |
| int16_t * | block, | ||
| int16_t * | coeff, | ||
| int8_t | block_size, | ||
| color_t | color, | ||
| cu_type_t | type | ||
| ) |
| block | input residual |
| coeff | transform coefficients |
| block_size | width of transform |
| void kvz_transformskip | ( | const encoder_control_t *const | encoder, |
| int16_t * | block, | ||
| int16_t * | coeff, | ||
| int8_t | block_size | ||
| ) |
| coeff | input data (transform coefficients) |
| block | output data (residual) |
| block_size | input data (width of transform) |
|
static |
| early_skip | if this is used for early skip, bypass IT and IQ |
| width | width of the block |
| dir | RDPCM direction |
| coeff | coefficients (residual) to filter |