Fix chroma reconstruction with tiles

An incorrect frame boundary check caused a checksum error, because the
chroma reconstruction of the encoder was wrong. The encoder treated
horizontal tile boundaries as frame boundaries when the vertical
component of the movement vector was a multiple of 8.
This commit is contained in:
Ari Koivula 2016-02-29 14:29:01 +02:00
parent c0dc490dd1
commit 1be877faf9

View file

@ -347,7 +347,7 @@ void kvz_inter_recon_lcu(const encoder_state_t * const state,
coord_y = (y + state->tile->lcu_offset_y * (LCU_WIDTH >> 1)) + (mv[1]>>1); coord_y = (y + state->tile->lcu_offset_y * (LCU_WIDTH >> 1)) + (mv[1]>>1);
overflow_neg_x = (coord_x < 0)?1:0; overflow_neg_x = (coord_x < 0)?1:0;
overflow_neg_y = (y + (mv[1]>>1) < 0)?1:0; overflow_neg_y = (coord_y < 0)?1:0;
overflow_pos_x = (coord_x >= ref->width>>1 )?1:0; overflow_pos_x = (coord_x >= ref->width>>1 )?1:0;
overflow_pos_y = (coord_y >= ref->height>>1)?1:0; overflow_pos_y = (coord_y >= ref->height>>1)?1:0;