From: Yaowu Xu Date: Thu, 10 Dec 2015 02:22:44 +0000 (-0800) Subject: Fix enc/dec mismatches for aq-mode 1 and 2 X-Git-Tag: v1.6.0~491^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=221ed5e47bf2861dab989f3aa0387db7088477a9;p=libvpx Fix enc/dec mismatches for aq-mode 1 and 2 Change-Id: Iefad9d8d96a08dcc788a5efdca2df6a815d1205f --- diff --git a/vp10/decoder/decodeframe.c b/vp10/decoder/decodeframe.c index 80f1778de..70d012b27 100644 --- a/vp10/decoder/decodeframe.c +++ b/vp10/decoder/decodeframe.c @@ -1152,16 +1152,12 @@ static void setup_quantization(VP10_COMMON *const cm, MACROBLOCKD *const xd, cm->uv_dc_delta_q = read_delta_q(rb); cm->uv_ac_delta_q = read_delta_q(rb); cm->dequant_bit_depth = cm->bit_depth; - for (i = 0; i < (cm->seg.enabled ? MAX_SEGMENTS : 1); ++i) { -#if CONFIG_MISC_FIXES - const int qindex = vp10_get_qindex(&cm->seg, i, cm->base_qindex); -#endif - xd->lossless[i] = cm->y_dc_delta_q == 0 && -#if CONFIG_MISC_FIXES - qindex == 0 && -#else - cm->base_qindex == 0 && -#endif + for (i = 0; i < MAX_SEGMENTS; ++i) { + const int qindex = CONFIG_MISC_FIXES && cm->seg.enabled ? + vp10_get_qindex(&cm->seg, i, cm->base_qindex) : + cm->base_qindex; + xd->lossless[i] = qindex == 0 && + cm->y_dc_delta_q == 0 && cm->uv_dc_delta_q == 0 && cm->uv_ac_delta_q == 0; } diff --git a/vp10/encoder/encodeframe.c b/vp10/encoder/encodeframe.c index f050905e7..f1814a929 100644 --- a/vp10/encoder/encodeframe.c +++ b/vp10/encoder/encodeframe.c @@ -1155,7 +1155,7 @@ static void rd_pick_sb_modes(VP10_COMP *cpi, if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { x->source_variance = vp10_high_get_sby_perpixel_variance(cpi, &x->plane[0].src, - bsize, xd->bd); + bsize, xd->bd); } else { x->source_variance = vp10_get_sby_perpixel_variance(cpi, &x->plane[0].src, bsize); @@ -2579,7 +2579,7 @@ static MV_REFERENCE_FRAME get_frame_type(const VP10_COMP *cpi) { } static TX_MODE select_tx_mode(const VP10_COMP *cpi, MACROBLOCKD *const xd) { - if (!cpi->common.seg.enabled && xd->lossless[0]) + if (xd->lossless[0]) return ONLY_4X4; if (cpi->sf.tx_size_search_method == USE_LARGESTALL) return ALLOW_32X32; @@ -2696,16 +2696,12 @@ static void encode_frame_internal(VP10_COMP *cpi) { vp10_zero(rdc->comp_pred_diff); vp10_zero(rdc->filter_diff); - for (i = 0; i < (cm->seg.enabled ? MAX_SEGMENTS : 1); ++i) { -#if CONFIG_MISC_FIXES - const int qindex = vp10_get_qindex(&cm->seg, i, cm->base_qindex); -#endif - xd->lossless[i] = cm->y_dc_delta_q == 0 && -#if CONFIG_MISC_FIXES - qindex == 0 && -#else - cm->base_qindex == 0 && -#endif + for (i = 0; i < MAX_SEGMENTS; ++i) { + const int qindex = CONFIG_MISC_FIXES && cm->seg.enabled ? + vp10_get_qindex(&cm->seg, i, cm->base_qindex) : + cm->base_qindex; + xd->lossless[i] = qindex == 0 && + cm->y_dc_delta_q == 0 && cm->uv_dc_delta_q == 0 && cm->uv_ac_delta_q == 0; }