mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-27 11:24:05 +00:00
[lfnst] Fix lfnst constraint calculation check. Constraints will now be calculated regardless of tr_idx value.
This commit is contained in:
parent
d15fb473a2
commit
7abbf14d50
|
@ -443,6 +443,8 @@ static double search_intra_trdepth(
|
||||||
// rd_cost += uvg_cu_rd_cost_chroma(state, lcu_px.x, lcu_px.y, depth, pred_cu, lcu);
|
// rd_cost += uvg_cu_rd_cost_chroma(state, lcu_px.x, lcu_px.y, depth, pred_cu, lcu);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
// TODO: there is an error in this cost calculation. This will be fixed when merged into current master
|
||||||
|
// This is compared to the previous best, which may have chroma cost included
|
||||||
if (rd_cost < best_rd_cost) {
|
if (rd_cost < best_rd_cost) {
|
||||||
best_rd_cost = rd_cost;
|
best_rd_cost = rd_cost;
|
||||||
best_lfnst_idx = pred_cu->lfnst_idx;
|
best_lfnst_idx = pred_cu->lfnst_idx;
|
||||||
|
|
|
@ -102,7 +102,7 @@ void uvg_encode_coeff_nxn_generic(encoder_state_t * const state,
|
||||||
last_coeff_x = (uint8_t)(pos_last - (last_coeff_y * width));
|
last_coeff_x = (uint8_t)(pos_last - (last_coeff_y * width));
|
||||||
bool is_chroma = color != COLOR_Y;
|
bool is_chroma = color != COLOR_Y;
|
||||||
|
|
||||||
if (cur_cu != NULL && cur_cu->tr_idx != MTS_SKIP && height >= 4 && width >= 4) {
|
if (cur_cu != NULL && /*cur_cu->tr_idx != MTS_SKIP &&*/ height >= 4 && width >= 4) {
|
||||||
const int max_lfnst_pos = ((height == 4 && width == 4) || (height == 8 && width == 8)) ? 7 : 15;
|
const int max_lfnst_pos = ((height == 4 && width == 4) || (height == 8 && width == 8)) ? 7 : 15;
|
||||||
cur_cu->violates_lfnst_constrained[is_chroma] |= scan_pos_last > max_lfnst_pos;
|
cur_cu->violates_lfnst_constrained[is_chroma] |= scan_pos_last > max_lfnst_pos;
|
||||||
cur_cu->lfnst_last_scan_pos |= scan_pos_last >= 1;
|
cur_cu->lfnst_last_scan_pos |= scan_pos_last >= 1;
|
||||||
|
|
Loading…
Reference in a new issue