Populate q_index in multi-thread encoding This value needs to be copied to each thread's data structure. This fixed artifact problem in multi-thread encoder. Change-Id: Iab6d9745a1d44846aa503184705376f63a505597
diff --git a/vp8/encoder/ethreading.c b/vp8/encoder/ethreading.c index 557080d..8c49668 100644 --- a/vp8/encoder/ethreading.c +++ b/vp8/encoder/ethreading.c
@@ -343,6 +343,9 @@ z->block[i].zbin = x->block[i].zbin; z->block[i].zrun_zbin_boost = x->block[i].zrun_zbin_boost; z->block[i].round = x->block[i].round; + z->q_index = x->q_index; + z->act_zbin_adj = x->act_zbin_adj; + z->last_act_zbin_adj = x->last_act_zbin_adj; /* z->block[i].src = x->block[i].src; */
diff --git a/vp8/encoder/quantize.c b/vp8/encoder/quantize.c index e57a264..3ca8758 100644 --- a/vp8/encoder/quantize.c +++ b/vp8/encoder/quantize.c
@@ -609,6 +609,9 @@ /* This initialization should be called at least once. Use ok_to_skip to * decide if it is ok to skip. + * Before encoding a frame, this function is always called with ok_to_skip + * =0, which means no skiping of calculations. The "last" values are + * initialized at that time. */ if (!ok_to_skip || QIndex != x->q_index) {