Fixing warnings.

This commit is contained in:
Arttu Makinen 2020-10-26 12:38:51 +02:00
parent d7eafc391f
commit ee70bcfaec
2 changed files with 80 additions and 98 deletions

134
src/alf.c
View file

@ -158,7 +158,7 @@ int16_t alf_clip3(const int16_t minVal, const int16_t maxVal, const int16_t a)
return MIN(MAX(minVal, a), maxVal);
}
void get_clip_max(alf_covariance *cov, int *clip_max)
void get_clip_max(const alf_covariance *cov, int *clip_max)
{
const int num_coeff = cov->num_coeff;
for (int k = 0; k < num_coeff - 1; ++k)
@ -184,7 +184,7 @@ void get_clip_max(alf_covariance *cov, int *clip_max)
clip_max[num_coeff - 1] = 0;
}
void reduce_clip_cost(alf_covariance *cov, int *clip)
void reduce_clip_cost(const alf_covariance *cov, int *clip)
{
for (int k = 0; k < cov->num_coeff - 1; ++k)
{
@ -206,7 +206,7 @@ void reduce_clip_cost(alf_covariance *cov, int *clip)
}
}
void set_ey_from_clip(alf_covariance *cov,const int* clip, double ee[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double y[MAX_NUM_ALF_LUMA_COEFF], int size)
void set_ey_from_clip(const alf_covariance *cov,const int* clip, double ee[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double y[MAX_NUM_ALF_LUMA_COEFF], int size)
{
for (int k = 0; k<size; k++)
{
@ -218,7 +218,7 @@ void set_ey_from_clip(alf_covariance *cov,const int* clip, double ee[MAX_NUM_ALF
}
}
double optimize_filter(alf_covariance *cov, int* clip, double *f, bool optimize_clip)
double optimize_filter(const alf_covariance *cov, int* clip, double *f, bool optimize_clip)
{
const int size = cov->num_coeff;
int clip_max[MAX_NUM_ALF_LUMA_COEFF];
@ -509,7 +509,7 @@ int gns_solve_by_chol_clip_gns(alf_covariance *cov, const int *clip, double *x,
return gns_solve_by_chol(lhs, rhs, x, num_eq);
}
double calc_error_for_coeffs(alf_covariance *cov, const int *clip, const int *coeff, const int num_coeff, const int bit_depth)
double calc_error_for_coeffs(const alf_covariance *cov, const int *clip, const int *coeff, const int num_coeff, const int bit_depth)
{
double factor = 1 << (bit_depth - 1);
double error = 0;
@ -806,7 +806,7 @@ int length_filter_coeffs(channel_type channel, const int num_filters, int **filt
return bit_cnt;
}
double calculate_error(alf_covariance *cov, const int *clip, const double *coeff)
double calculate_error(const alf_covariance *cov, const int *clip, const double *coeff)
{
double sum = 0;
for (int i = 0; i < cov->num_coeff; i++)
@ -1738,16 +1738,16 @@ void kvz_alf_enc_process(encoder_state_t *const state
const int y_end = i == num_hor_vir_bndry ? y_pos + height : hor_vir_bndry_pos[i];
const int h = y_end - y_start;
const bool clip_t = (i == 0 && clip_top) || (i > 0) || (y_start == 0);
const bool clip_b = (i == num_hor_vir_bndry && clip_bottom) || (i < num_hor_vir_bndry) || (y_end == luma_height);
//const bool clip_t = (i == 0 && clip_top) || (i > 0) || (y_start == 0);
//const bool clip_b = (i == num_hor_vir_bndry && clip_bottom) || (i < num_hor_vir_bndry) || (y_end == luma_height);
int x_start = x_pos;
for (int j = 0; j <= num_ver_vir_bndry; j++)
{
const int x_end = j == num_ver_vir_bndry ? x_pos + width : ver_vir_bndry_pos[j];
const int w = x_end - x_start;
const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == luma_width);
//const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
//const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == luma_width);
//const int w_buf = w + (clip_l ? 0 : MAX_ALF_PADDING_SIZE) + (clip_r ? 0 : MAX_ALF_PADDING_SIZE);
//const int h_buf = h + (clip_t ? 0 : MAX_ALF_PADDING_SIZE) + (clip_b ? 0 : MAX_ALF_PADDING_SIZE);
@ -1931,7 +1931,6 @@ void kvz_alf_enc_process(encoder_state_t *const state
for (int comp_idx = 1; comp_idx < (state->encoder_control->chroma_format == KVZ_CSP_400 ? 1 : MAX_NUM_COMPONENT); comp_idx++)
{
alf_component_id comp_id = comp_idx;
//if (m_ccAlfFilterParam.ccAlfFilterEnabled[comp_idx - 1])
if (g_cc_alf_filter_param.cc_alf_filter_enabled[comp_idx - 1])
{
@ -1961,10 +1960,9 @@ double kvz_alf_derive_ctb_alf_enable_flags(encoder_state_t * const state,
TempCtx ctxTempAltStart(m_CtxCache);
TempCtx ctxTempAltBest(m_CtxCache);*/
cabac_data_t ctx_temp_alt_start;
cabac_data_t ctx_temp_alt_best;
//cabac_data_t ctx_temp_alt_best;
//#endif
kvz_config cfg = state->encoder_control->cfg;
bool is_luma = channel == CHANNEL_TYPE_LUMA ? 1 : 0;
const kvz_pixel comp_id_first = is_luma ? COMPONENT_Y : COMPONENT_Cb;
@ -2151,7 +2149,7 @@ double kvz_alf_derive_ctb_alf_enable_flags(encoder_state_t * const state,
}
void kvz_alf_enc_create(encoder_state_t const *state)
void kvz_alf_enc_create(encoder_state_t * const state)
{
if (g_created) {
return;
@ -2511,7 +2509,7 @@ void kvz_alf_enc_init(encoder_state_t const *state)
#endif // !FULL_FRAME
void kvz_alf_reconstruct(encoder_state_t const *state
void kvz_alf_reconstruct(encoder_state_t * const state
#if !FULL_FRAME
, const lcu_order_element_t *const lcu
#endif
@ -2541,9 +2539,6 @@ void kvz_alf_enc_destroy(videoframe_t * const frame)
{
if (g_alf_covariance_frame[channel_idx])
{
channel_type chType = channel_idx ? CHANNEL_TYPE_CHROMA : CHANNEL_TYPE_LUMA;
int numClasses = channel_idx ? 1 : MAX_NUM_ALF_CLASSES;
int num_coeff = channel_idx ? 7 : 13;
for (int i = 0; i != 1/*m_filterShapes[ch_type].size()*/; i++)
{
FREE_POINTER(g_alf_covariance_frame[channel_idx][i]);
@ -2583,9 +2578,6 @@ void kvz_alf_enc_destroy(videoframe_t * const frame)
if (g_alf_covariance[comp_idx])
{
channel_type chType = comp_idx ? CHANNEL_TYPE_CHROMA : CHANNEL_TYPE_LUMA;
int numClasses = comp_idx ? 1 : MAX_NUM_ALF_CLASSES;
for (int i = 0; i != 1/*m_filterShapes[ch_type].size()*/; i++)
{
for (int j = 0; j < g_num_ctus_in_pic; j++)
@ -2765,7 +2757,7 @@ void kvz_alf_enc_destroy(videoframe_t * const frame)
}
void kvz_alf_encoder(encoder_state_t *const state,
void kvz_alf_encoder(encoder_state_t * const state,
#if !FULL_FRAME
const lcu_order_element_t *lcu,
#endif
@ -2778,7 +2770,7 @@ void kvz_alf_encoder(encoder_state_t *const state,
int ctu_idx = lcu->index;
#endif
//const TempCtx ctxStart(m_CtxCache, AlfCtx(m_CABACEstimator->getCtx()));
const cabac_data_t ctx_start;
cabac_data_t ctx_start;
memcpy(&ctx_start, &cabac_estimator, sizeof(ctx_start));
//TempCtx ctxBest(m_CtxCache);
cabac_data_t ctx_best;
@ -3078,12 +3070,12 @@ void kvz_alf_get_avai_aps_ids_luma(encoder_state_t *const state,
assert(*new_aps_id < (int)MAX_NUM_APS); //Wrong APS index assignment in getAvaiApsIdsLuma
}
#else
void kvz_alf_get_avai_aps_ids_luma(encoder_state_t *const state,
void kvz_alf_get_avai_aps_ids_luma(encoder_state_t * const state,
int *new_aps_id,
int *aps_ids,
int *size_of_aps_ids)
{
alf_aps *apss = state->slice->apss;
//alf_aps *apss = state->slice->apss;
for (int i = 0; i < ALF_CTB_MAX_NUM_APS; i++)
{
copy_aps(&state->slice->apss[i], &state->encoder_control->cfg.param_set_map[i + NUM_APS_TYPE_LEN + T_ALF_APS].parameter_set);
@ -3131,7 +3123,7 @@ void kvz_alf_get_avai_aps_ids_luma(encoder_state_t *const state,
#endif
void kvz_alf_derive_stats_for_filtering(encoder_state_t *const state
void kvz_alf_derive_stats_for_filtering(encoder_state_t * const state
#if !FULL_FRAME
, const lcu_order_element_t *const lcu
#endif
@ -3212,19 +3204,19 @@ void kvz_alf_derive_stats_for_filtering(encoder_state_t *const state
{
const int y_end = i == num_hor_vir_bndry ? y_pos + height : hor_vir_bndry_pos[i];
const int h = y_end - y_start;
const bool clip_t = (i == 0 && clip_top) || (i > 0) || (y_start == 0);
const bool clip_b = (i == num_hor_vir_bndry && clip_bottom) || (i < num_hor_vir_bndry) || (y_end == pic_height);
//const bool clip_t = (i == 0 && clip_top) || (i > 0) || (y_start == 0);
//const bool clip_b = (i == num_hor_vir_bndry && clip_bottom) || (i < num_hor_vir_bndry) || (y_end == pic_height);
int x_start = x_pos;
for (int j = 0; j <= num_ver_vir_bndry; j++)
{
const int x_end = j == num_ver_vir_bndry ? x_pos + width : ver_vir_bndry_pos[j];
const int w = x_end - x_start;
const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == pic_width);
//const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
//const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == pic_width);
const int w_buf = w + (clip_l ? 0 : MAX_ALF_PADDING_SIZE) + (clip_r ? 0 : MAX_ALF_PADDING_SIZE);
const int h_buf = h + (clip_t ? 0 : MAX_ALF_PADDING_SIZE) + (clip_b ? 0 : MAX_ALF_PADDING_SIZE);
//const int w_buf = w + (clip_l ? 0 : MAX_ALF_PADDING_SIZE) + (clip_r ? 0 : MAX_ALF_PADDING_SIZE);
//const int h_buf = h + (clip_t ? 0 : MAX_ALF_PADDING_SIZE) + (clip_b ? 0 : MAX_ALF_PADDING_SIZE);
//PelUnitBuf recBuf = m_tempBuf2.subBuf(UnitArea(cs.area.chromaFormat, Area(0, 0, w_buf, h_buf)));
//recBuf.copyFrom(recYuv.subBuf(UnitArea(cs.area.chromaFormat, Area(x_start - (clip_l ? 0 : MAX_ALF_PADDING_SIZE), y_start - (clip_t ? 0 : MAX_ALF_PADDING_SIZE), w_buf, h_buf))));
// pad top-left unavailable samples for raster slice
@ -3345,7 +3337,7 @@ void kvz_alf_derive_stats_for_filtering(encoder_state_t *const state
#endif
}
void kvz_alf_get_blk_stats(encoder_state_t *const state,
void kvz_alf_get_blk_stats(encoder_state_t * const state,
channel_type channel,
alf_covariance **alf_covariance,
alf_classifier **g_classifier,
@ -3585,7 +3577,7 @@ void kvz_alf_calc_covariance(int16_t e_local[MAX_NUM_ALF_LUMA_COEFF][MAX_ALF_NUM
}
}
double kvz_alf_get_filter_coeff_and_cost(encoder_state_t *const state,
double kvz_alf_get_filter_coeff_and_cost(encoder_state_t * const state,
channel_type channel,
double dist_unfilter,
int *ui_coeff_bits,
@ -3810,15 +3802,13 @@ void kvz_alf_merge_classes(channel_type channel,
const int num_classes,
short filter_indices[MAX_NUM_ALF_CLASSES][MAX_NUM_ALF_CLASSES])
{
const int num_coeff = channel == CHANNEL_TYPE_LUMA ? 13 : 7;
int tmp_clip[MAX_NUM_ALF_LUMA_COEFF];
int best_merge_clip[MAX_NUM_ALF_LUMA_COEFF];
double err[MAX_NUM_ALF_CLASSES];
double best_merge_err = MAX_DOUBLE;
bool available_class[MAX_NUM_ALF_CLASSES];
uint8_t index_list[MAX_NUM_ALF_CLASSES];
uint8_t index_list_temp[MAX_NUM_ALF_CLASSES];
int8_t index_list[MAX_NUM_ALF_CLASSES];
int8_t index_list_temp[MAX_NUM_ALF_CLASSES];
int num_remaining = num_classes;
memset(filter_indices, 0, sizeof(short) * MAX_NUM_ALF_CLASSES * MAX_NUM_ALF_CLASSES);
@ -3931,7 +3921,7 @@ void kvz_alf_merge_classes(channel_type channel,
num_remaining--;
if (num_remaining <= num_classes)
{
memcpy(index_list_temp, index_list, sizeof(uint8_t) * num_classes);
memcpy(index_list_temp, index_list, sizeof(int8_t) * num_classes);
bool exist = false;
int ind = 0;
@ -3965,7 +3955,7 @@ void kvz_alf_merge_classes(channel_type channel,
}
}
double kvz_alf_merge_filters_and_cost(encoder_state_t *const state,
double kvz_alf_merge_filters_and_cost(encoder_state_t * const state,
alf_aps *alf_aps,
channel_type channel,
int *ui_coeff_bits,
@ -4098,7 +4088,6 @@ double kvz_alf_derive_filter_coeffs(alf_aps *aps,
//int *fixed_filter_set_index = &aps->fixed_filter_set_index;
int num_coeff = channel == CHANNEL_TYPE_LUMA ? 13 : 7;
int *weights = channel == CHANNEL_TYPE_LUMA ? alf_weights_7 : alf_weights_5;
double error = 0.0;
alf_covariance *tmp_cov = &covMerged[MAX_NUM_ALF_CLASSES];
@ -4223,7 +4212,6 @@ double kvz_alf_derive_coeff_quant(channel_type channel,
{
const bool is_luma = channel == CHANNEL_TYPE_LUMA ? true : false;
const int num_coeff = is_luma ? 13 : 7;
int *weights = is_luma ? alf_weights_7 : alf_weights_5;
const int factor = 1 << (kvz_bit_depth - 1);
const int max_value = factor - 1;
const int min_value = -factor + 1;
@ -4286,7 +4274,7 @@ double kvz_alf_derive_coeff_quant(channel_type channel,
return err_ref;
}
void kvz_alf_encoder_ctb(encoder_state_t *const state,
void kvz_alf_encoder_ctb(encoder_state_t * const state,
alf_aps *aps,
#if !FULL_FRAME
int ctu_idx,
@ -4307,7 +4295,7 @@ void kvz_alf_encoder_ctb(encoder_state_t *const state,
/*TempCtx ctxTempAltStart(m_CtxCache);
TempCtx ctxTempAltBest(m_CtxCache);*/
cabac_data_t ctx_temp_alt_start;
cabac_data_t ctx_temp_alt_best;
//cabac_data_t ctx_temp_alt_best;
//#endif
int best_aps_ids[ALF_CTB_MAX_NUM_APS] = { -1, -1, -1, -1, -1, -1, -1, -1 };
@ -4515,7 +4503,7 @@ void kvz_alf_encoder_ctb(encoder_state_t *const state,
else
{
short *p_coeff;
uint16_t *p_clipp;
int16_t *p_clipp;
if (use_new_filter && filter_set_idx == ALF_NUM_FIXED_FILTER_SETS)
{
p_coeff = g_coeff_final;
@ -5159,10 +5147,8 @@ void kvz_alf_encoder_ctb(encoder_state_t *const state,
}
}
void kvz_alf_reconstructor(encoder_state_t const *state)
void kvz_alf_reconstructor(encoder_state_t * const state)
{
enum kvz_chroma_format chroma_fmt = state->encoder_control->chroma_format;
if (!state->slice->tile_group_alf_enabled_flag[COMPONENT_Y])
{
return;
@ -5197,9 +5183,9 @@ void kvz_alf_reconstructor(encoder_state_t const *state)
memcpy(&alf_tmp_v[index_chroma], &state->tile->frame->rec->v[index_chroma],
sizeof(kvz_pixel) * chroma_stride * (chroma_height + chroma_padding * 2));
for (int y_pos = 0; y_pos < luma_height; y_pos += LCU_WIDTH)
for (int y_pos = 0; y_pos < luma_height; y_pos += max_cu_height)
{
for (int x_pos = 0; x_pos < luma_width; x_pos += LCU_WIDTH)
for (int x_pos = 0; x_pos < luma_width; x_pos += max_cu_width)
{
bool ctu_enable_flag = g_ctu_enable_flag[COMPONENT_Y][ctu_idx];
@ -5479,7 +5465,6 @@ void code_alf_ctu_enable_flag(encoder_state_t * const state,
if (encoder->cfg.alf_enable && alf_component_enabled)
{
int frame_width_in_ctus = state->tile->frame->width_in_lcu;
const uint32_t curSliceIdx = state->slice->id;
bool left_avail = state->lcu_order[ctu_rs_addr].left ? 1 : 0;
bool above_avail = state->lcu_order[ctu_rs_addr].above ? 1 : 0;
@ -5503,7 +5488,6 @@ void code_alf_ctu_filter_index(encoder_state_t * const state,
uint32_t ctu_rs_addr,
bool alf_enable_luma)
{
bitstream_t *stream = &state->stream;
const encoder_control_t * const encoder = state->encoder_control;
if (!encoder->cfg.alf_enable || !alf_enable_luma)//(!cs.sps->getALFEnabledFlag()) || (!alfEnableLuma))
@ -6407,7 +6391,7 @@ void encode_alf_aps_scaling_list(encoder_state_t * const state)
//-------------------------CTU functions--------------------------------
void kvz_alf_reconstruct_coeff_aps(encoder_state_t *const state, bool luma, bool chroma, bool is_rdo)
void kvz_alf_reconstruct_coeff_aps(encoder_state_t * const state, bool luma, bool chroma, bool is_rdo)
{
//luma
alf_aps* apss = state->slice->apss;
@ -6444,7 +6428,7 @@ void kvz_alf_reconstruct_coeff_aps(encoder_state_t *const state, bool luma, bool
}
//void reconstructCoeff(AlfSliceParam& alfSliceParam, ChannelType channel, const bool isRdo, const bool isRedo)
void kvz_alf_reconstruct_coeff(encoder_state_t *const state,
void kvz_alf_reconstruct_coeff(encoder_state_t * const state,
alf_aps *aps,
channel_type channel,
const bool is_rdo,
@ -6737,7 +6721,7 @@ void kvz_alf_destroy(videoframe_t * const frame)
}
}
void kvz_alf_derive_classification(encoder_state_t *const state,
void kvz_alf_derive_classification(encoder_state_t * const state,
const int width,
const int height,
int x_pos,
@ -6747,33 +6731,34 @@ void kvz_alf_derive_classification(encoder_state_t *const state,
//alf_classifier** g_classifier)
{
int32_t pic_height = state->tile->frame->rec->height;
int32_t pic_width = state->tile->frame->rec->width;
int max_height = y_pos + height;
int max_width = x_pos + width;
//Use if adjacent CTUs are not reconstructed
adjust_pixels(state->tile->frame->rec->y, x_pos, state->tile->frame->width, y_pos, state->tile->frame->height, state->tile->frame->rec->stride,
state->tile->frame->width, state->tile->frame->height);
adjust_pixels(state->tile->frame->rec->y, x_pos, pic_width, y_pos, pic_height, state->tile->frame->rec->stride,
pic_width, pic_height);
//Use if adjacent CTUs are reconstructed
/*adjust_pixels_CTU_plus_4_pix(state->tile->frame->rec->y, x_pos, state->tile->frame->width, y_pos, state->tile->frame->height, state->tile->frame->rec->stride,
state->tile->frame->width, state->tile->frame->height);*/
adjust_pixels_chroma(state->tile->frame->rec->u,
x_pos >> chroma_scale_x,
state->tile->frame->width >> chroma_scale_x,
pic_width >> chroma_scale_x,
y_pos >> chroma_scale_y,
state->tile->frame->height >> chroma_scale_y,
pic_height >> chroma_scale_y,
state->tile->frame->rec->stride >> chroma_scale_x,
state->tile->frame->width >> chroma_scale_x,
state->tile->frame->height >> chroma_scale_y);
pic_width >> chroma_scale_x,
pic_height >> chroma_scale_y);
adjust_pixels_chroma(state->tile->frame->rec->v,
x_pos >> chroma_scale_x,
state->tile->frame->width >> chroma_scale_x,
pic_width >> chroma_scale_x,
y_pos >> chroma_scale_y,
state->tile->frame->height >> chroma_scale_y,
pic_height >> chroma_scale_y,
state->tile->frame->rec->stride >> chroma_scale_x,
state->tile->frame->width >> chroma_scale_x,
state->tile->frame->height >> chroma_scale_y);
pic_width >> chroma_scale_x,
pic_height >> chroma_scale_y);
for (int i = y_pos; i < max_height; i += CLASSIFICATION_BLK_SIZE)
{
@ -7045,7 +7030,6 @@ void kvz_alf_filter_block(encoder_state_t * const state,
int vb_pos,
const int vb_ctu_height)
{
videoframe_t* const frame = state->tile->frame;
alf_filter_type const filter_type = component_id == COMPONENT_Y ? ALF_FILTER_7X7 : ALF_FILTER_5X5;
const bool chroma = component_id == COMPONENT_Y ? 0 : 1;
//alf_classifier **g_classifier = state->tile->frame->alf_info->g_classifier;
@ -8383,7 +8367,7 @@ void EncAdaptiveLoopFilter::deriveCcAlfFilter( CodingStructure& cs, ComponentID
}*/
void derive_stats_for_cc_alf_filtering(encoder_state_t const *state,
void derive_stats_for_cc_alf_filtering(encoder_state_t * const state,
const kvz_picture *org_yuv, const kvz_picture *rec_yuv,
const int comp_idx, const int mask_stride,
const uint8_t filter_idc)
@ -8439,10 +8423,10 @@ void derive_stats_for_cc_alf_filtering(encoder_state_t const *state,
{
const int x_end = j == num_ver_vir_bndry ? x_pos + width : ver_vir_bndry_pos[j];
const int w = x_end - x_start;
const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == frame_width);
const int w_buf = w + (clip_l ? 0 : MAX_ALF_PADDING_SIZE) + (clip_r ? 0 : MAX_ALF_PADDING_SIZE);
const int h_buf = h + (clip_t ? 0 : MAX_ALF_PADDING_SIZE) + (clip_b ? 0 : MAX_ALF_PADDING_SIZE);
//const bool clip_l = (j == 0 && clip_left) || (j > 0) || (x_start == 0);
//const bool clip_r = (j == num_ver_vir_bndry && clip_right) || (j < num_ver_vir_bndry) || (x_end == frame_width);
//const int w_buf = w + (clip_l ? 0 : MAX_ALF_PADDING_SIZE) + (clip_r ? 0 : MAX_ALF_PADDING_SIZE);
//const int h_buf = h + (clip_t ? 0 : MAX_ALF_PADDING_SIZE) + (clip_b ? 0 : MAX_ALF_PADDING_SIZE);
//PelUnitBuf recBuf = m_tempBuf2.subBuf(UnitArea(cs.area.chromaFormat, Area(0, 0, w_buf, h_buf)));
//recBuf.copyFrom(rec_yuv.subBuf(
// UnitArea(cs.area.chromaFormat, Area(x_start - (clip_l ? 0 : MAX_ALF_PADDING_SIZE),
@ -8499,7 +8483,7 @@ void derive_stats_for_cc_alf_filtering(encoder_state_t const *state,
}
void get_blk_stats_cc_alf(encoder_state_t const *state,
void get_blk_stats_cc_alf(encoder_state_t * const state,
alf_covariance *alf_covariance,
const kvz_picture *org_yuv, const kvz_picture *rec_yuv,
const alf_component_id comp_id,
@ -8507,8 +8491,6 @@ void get_blk_stats_cc_alf(encoder_state_t const *state,
const int width, const int height)
{
const int frame_height = state->tile->frame->height;
const int frame_width = state->tile->frame->width;
const int max_cu_width = LCU_WIDTH;
const int max_cu_height = LCU_WIDTH;
const int x_pos_c = x_pos >> chroma_scale_x;
const int y_pos_c = y_pos >> chroma_scale_y;
@ -8640,11 +8622,11 @@ void get_blk_stats_cc_alf(encoder_state_t const *state,
{
if (comp_id == COMPONENT_Y)
{
rec[src_c_idx] += (rec_stride[src_c_idx] >> (src_comp_id == COMPONENT_Y || chroma_format != KVZ_CSP_420) ? 0 : 1);
rec[src_c_idx] += ((rec_stride[src_c_idx] >> (src_comp_id == COMPONENT_Y || chroma_format != KVZ_CSP_420) ? 0 : 1));
}
else
{
rec[src_c_idx] += (rec_stride[src_c_idx] << (comp_id == COMPONENT_Y || chroma_format != KVZ_CSP_420) ? 0 : 1);
rec[src_c_idx] += ((rec_stride[src_c_idx] << (comp_id == COMPONENT_Y || chroma_format != KVZ_CSP_420) ? 0 : 1));
}
}
}

View file

@ -446,10 +446,10 @@ void init_ctu_alternative_chroma(uint8_t* ctu_alts[MAX_NUM_COMPONENT]);
int16_t clip_alf(const int16_t clip, const int16_t ref, const int16_t val0, const int16_t val1);
int alf_clip_pixel(const int a, const clp_rng clp_rng);
int16_t alf_clip3(const int16_t min_val, const int16_t max_val, const int16_t a);
void get_clip_max(alf_covariance *cov, int *clip_max);
void reduce_clip_cost(alf_covariance *cov, int *clip);
void set_ey_from_clip(alf_covariance *cov, const int* clip, double ee[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double y[MAX_NUM_ALF_LUMA_COEFF], int siz);
double optimize_filter(alf_covariance *cov, int* clip, double *f, bool optimize_clip);
void get_clip_max(const alf_covariance *cov, int *clip_max);
void reduce_clip_cost(const alf_covariance *cov, int *clip);
void set_ey_from_clip(const alf_covariance *cov, const int* clip, double ee[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double y[MAX_NUM_ALF_LUMA_COEFF], int siz);
double optimize_filter(const alf_covariance *cov, int* clip, double *f, bool optimize_clip);
double optimize_filter_clip(alf_covariance *cov, int* clip);
double optimize_filter_gns_calc(alf_covariance *cov, const int* clip, double *f, int size);
void gns_backsubstitution(double r[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double* z, int size, double* A);
@ -457,7 +457,7 @@ void gns_transpose_backsubstitution(double u[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF
int gns_cholesky_dec(double inp_matr[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double out_matr[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], int num_eq);
int gns_solve_by_chol(double lhs[MAX_NUM_ALF_LUMA_COEFF][MAX_NUM_ALF_LUMA_COEFF], double rhs[MAX_NUM_ALF_LUMA_COEFF], double *x, int num_eq);
int gns_solve_by_chol_clip_gns(alf_covariance *cov, const int *clip, double *x, int num_eq);
double calc_error_for_coeffs(alf_covariance *cov, const int *clip, const int *coeff, const int num_coeff, const int bit_depth);
double calc_error_for_coeffs(const alf_covariance *cov, const int *clip, const int *coeff, const int num_coeff, const int bit_depth);
//int get_golomb_k_min(channel_type channel, const int numFilters, int kMinTab[MAX_NUM_ALF_LUMA_COEFF], int bitsCoeffScan[11/*m_MAX_SCAN_VAL*/][16/*m_MAX_EXP_GOLOMB*/]);
int length_golomb(int coeff_val, int k, bool signed_coeff);
double get_dist_coeff_force_0(bool* coded_var_bins, double error_force_0_coeff_tab[MAX_NUM_ALF_CLASSES][2], int* bits_var_bin, const int num_filters);
@ -468,7 +468,7 @@ int get_cost_filter_clipp(channel_type channel, int **p_diff_q_filter_coeff_int_
//int get_tb_length(int ui_symbol, const int ui_max_symbol);//#if !JVET_O0491_HLS_CLEANUP
int get_non_filter_coeff_rate(alf_aps *aps);
int length_filter_coeffs(channel_type channel, const int num_filters, int **filter_coeff);
double calculate_error(alf_covariance *cov, const int *clip, const double *coeff);
double calculate_error(const alf_covariance *cov, const int *clip, const double *coeff);
double calculate_error_opt_filt(alf_covariance *cov, const int *clip);
//int get_coeff_rate(alf_aps *aps, bool is_chroma);//#if !JVET_O0090_ALF_CHROMA_FILTER_ALTERNATIVES_CTB
int get_chroma_coeff_rate(alf_aps* aps, int alt_idx);
@ -548,13 +548,13 @@ double kvz_alf_derive_ctb_alf_enable_flags(encoder_state_t * const state,
const double chroma_weight
);
void kvz_alf_enc_create(encoder_state_t const *state);
void kvz_alf_enc_create(encoder_state_t * const state);
#if !FULL_FRAME
void kvz_alf_enc_init(encoder_state_t const *state);
#endif // !FULL_FRAME
void kvz_alf_reconstruct(encoder_state_t const *state
void kvz_alf_reconstruct(encoder_state_t * const state
#if !FULL_FRAME
, const lcu_order_element_t *const lcu
#endif
@ -562,7 +562,7 @@ void kvz_alf_reconstruct(encoder_state_t const *state
void kvz_alf_enc_destroy(videoframe_t * const frame);
void kvz_alf_encoder(encoder_state_t *const state,
void kvz_alf_encoder(encoder_state_t * const state,
#if !FULL_FRAME
const lcu_order_element_t *lcu,
#endif
@ -572,19 +572,19 @@ void kvz_alf_encoder(encoder_state_t *const state,
);
//isIntra, PendingRasInit, IDRorBLA <--- ? selvitä nämä
void kvz_alf_get_avai_aps_ids_luma(encoder_state_t *const state,
void kvz_alf_get_avai_aps_ids_luma(encoder_state_t * const state,
int *newApsId,
int *aps_ids,
int *size_of_aps_ids);
void kvz_alf_derive_stats_for_filtering(encoder_state_t *const state
void kvz_alf_derive_stats_for_filtering(encoder_state_t * const state
#if !FULL_FRAME
, const lcu_order_element_t *const lcu
#endif
);
//mikä on alf_WSSD?
void kvz_alf_get_blk_stats(encoder_state_t *const state,
void kvz_alf_get_blk_stats(encoder_state_t * const state,
channel_type channel,
alf_covariance **alfCovariace,
alf_classifier **g_classifier,
@ -608,7 +608,7 @@ void kvz_alf_calc_covariance(int16_t e_local[MAX_NUM_ALF_LUMA_COEFF][MAX_ALF_NUM
const int transpose_idx,
int vb_distance);
double kvz_alf_get_filter_coeff_and_cost(encoder_state_t *const state,
double kvz_alf_get_filter_coeff_and_cost(encoder_state_t * const state,
channel_type channel,
double dist_unfilter,
int *ui_coeff_bits,
@ -632,7 +632,7 @@ void kvz_alf_merge_classes(channel_type channel,
const int num_classes,
short filter_indices[MAX_NUM_ALF_CLASSES][MAX_NUM_ALF_CLASSES]);
double kvz_alf_merge_filters_and_cost(encoder_state_t *const state,
double kvz_alf_merge_filters_and_cost(encoder_state_t * const state,
alf_aps *alf_aps,
channel_type channel,
int *ui_coeff_bits,
@ -658,7 +658,7 @@ double kvz_alf_derive_coeff_quant(channel_type channel,
//Muutama asia pitää vielä päivittää
//bookmarks
void kvz_alf_encoder_ctb(encoder_state_t *const state,
void kvz_alf_encoder_ctb(encoder_state_t * const state,
alf_aps *aps,
#if !FULL_FRAME
int ctu_idx,
@ -666,16 +666,16 @@ void kvz_alf_encoder_ctb(encoder_state_t *const state,
const double lambda_chroma_weight
);
void kvz_alf_reconstructor(encoder_state_t const *state);
void kvz_alf_reconstructor(encoder_state_t * const state);
//-------------------------CC ALF encoding functions------------------------
void derive_stats_for_cc_alf_filtering(encoder_state_t const *state,
void derive_stats_for_cc_alf_filtering(encoder_state_t * const state,
const kvz_picture *org_yuv, const kvz_picture *rec_yuv,
const int comp_idx, const int mask_stride,
const uint8_t filter_idc);
void get_blk_stats_cc_alf(encoder_state_t const *state,
void get_blk_stats_cc_alf(encoder_state_t * const state,
alf_covariance *alf_covariance,
const kvz_picture *org_yuv, const kvz_picture *rec_yuv,
const alf_component_id comp_id,
@ -773,12 +773,12 @@ void encode_alf_aps(encoder_state_t * const state);
//-------------------------CTU functions--------------------------------
//ei varmuutta miten alf_param_tmp pitäisi toimia tässä tilanteessa
void kvz_alf_reconstruct_coeff_aps(encoder_state_t *const state,
void kvz_alf_reconstruct_coeff_aps(encoder_state_t * const state,
bool luma,
bool chroma,
bool is_rdo);
void kvz_alf_reconstruct_coeff(encoder_state_t *const state,
void kvz_alf_reconstruct_coeff(encoder_state_t * const state,
alf_aps *aps,
channel_type channel,
const bool is_rdo,
@ -786,7 +786,7 @@ void kvz_alf_reconstruct_coeff(encoder_state_t *const state,
void kvz_alf_destroy(videoframe_t * const frame);
void kvz_alf_derive_classification(encoder_state_t *const state,
void kvz_alf_derive_classification(encoder_state_t * const state,
const int width,
const int height,
int x_pos,
@ -821,7 +821,7 @@ void kvz_alf_derive_classification_blk(encoder_state_t *const state,
//kvz_alf_reconstructor-funktiossa VTM:ssä return, pois jotta
//pääsee tähän funktioon
//tarkista toimivuus
void kvz_alf_filter_block(encoder_state_t *const state,
void kvz_alf_filter_block(encoder_state_t * const state,
const kvz_pixel *src_pixels,
kvz_pixel *dst_pixels,
const int src_stride,