From: Yunqing Wang Date: Fri, 9 Nov 2012 16:30:53 +0000 (-0800) Subject: Merge "Optimize 16x16 dequant and idct" into experimental X-Git-Tag: v1.3.0~1217^2~118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71b188540370211d80555896d40ef69ac8c16134;p=platform%2Fupstream%2Flibvpx.git Merge "Optimize 16x16 dequant and idct" into experimental --- 71b188540370211d80555896d40ef69ac8c16134 diff --cc vp9/decoder/decodframe.c index 562b55e,9826f85..fcaec2d --- a/vp9/decoder/decodframe.c +++ b/vp9/decoder/decodframe.c @@@ -508,12 -401,43 +508,12 @@@ static void decode_macroblock(VP9D_COM } else { vp9_dequant_idct_add_16x16(xd->qcoeff, xd->block[0].dequant, xd->predictor, xd->dst.y_buffer, - 16, xd->dst.y_stride); + 16, xd->dst.y_stride, xd->eobs[0]); } } else if (tx_size == TX_8X8) { -#if CONFIG_SUPERBLOCKS - void *orig = xd->mode_info_context; - int n, num = xd->mode_info_context->mbmi.encoded_as_sb ? 4 : 1; - for (n = 0; n < num; n++) { - int x_idx = n & 1, y_idx = n >> 1; - if (num == 4 && (mb_col + x_idx >= pc->mb_cols || - mb_row + y_idx >= pc->mb_rows)) - continue; - - if (n != 0) { - for (i = 0; i < 25; i++) { - xd->block[i].eob = 0; - xd->eobs[i] = 0; - } - xd->above_context = pc->above_context + mb_col + (n & 1); - xd->left_context = pc->left_context + (n >> 1); - xd->mode_info_context = orig; - xd->mode_info_context += (n & 1); - xd->mode_info_context += (n >> 1) * pc->mode_info_stride; - if (!orig_skip_flag) { - eobtotal = vp9_decode_mb_tokens_8x8(pbi, xd, bc); - if (eobtotal == 0) // skip loopfilter - xd->mode_info_context->mbmi.mb_skip_coeff = 1; - } else { - vp9_reset_mb_tokens_context(xd); - } - } - - if (xd->mode_info_context->mbmi.mb_skip_coeff) - continue; // only happens for SBs, which are already in dest buffer -#endif vp9_dequantize_b_2x2(b); IDCT_INVOKE(RTCD_VTABLE(idct), ihaar2)(&b->dqcoeff[0], b->diff, 8); - ((int *)b->qcoeff)[0] = 0;// 2nd order block are set to 0 after inverse transform + ((int *)b->qcoeff)[0] = 0; // 2nd order block are set to 0 after idct ((int *)b->qcoeff)[1] = 0; ((int *)b->qcoeff)[2] = 0; ((int *)b->qcoeff)[3] = 0;