ref: 8684c232600997df2c8e41a2708cafee97086a99
parent: 1a8d45f309504aab820cd86ecb1e0270bcd0693a
	author: Jingning Han <jingning@google.com>
	date: Wed Aug  6 12:11:22 EDT 2014
	
Integrate fast txfm and quant path into skip_recode system This commit integrates the fast transform and quantization process into skip_recode scheme in the rate-distortion optimization loop. Previously the fast transform and quantization process was only enabled for non-RD coding flow. Change-Id: Ib7db4d39b7033f1495c75897271f769799198ba8
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -3468,6 +3468,9 @@
cpi->oxcf.aq_mode != CYCLIC_REFRESH_AQ &&
cpi->sf.allow_skip_recode;
+ if (!x->skip_recode && !cpi->sf.use_nonrd_pick_mode)
+ vpx_memset(x->skip_txfm, 0, sizeof(x->skip_txfm));
+
x->skip_optimize = ctx->is_coded;
ctx->is_coded = 1;
x->use_lp32x32fdct = cpi->sf.use_lp32x32fdct;
--- a/vp9/encoder/vp9_encodemb.c
+++ b/vp9/encoder/vp9_encodemb.c
@@ -472,22 +472,22 @@
return;
}
-  if (x->skip_txfm[plane] == 0) {- // full forward transform and quantization
-    if (!x->skip_recode) {+  if (!x->skip_recode) {+    if (x->skip_txfm[plane] == 0) {+ // full forward transform and quantization
if (x->quant_fp)
vp9_xform_quant_fp(x, plane, block, plane_bsize, tx_size);
else
vp9_xform_quant(x, plane, block, plane_bsize, tx_size);
+    } else if (x->skip_txfm[plane] == 2) {+ // fast path forward transform and quantization
+ vp9_xform_quant_dc(x, plane, block, plane_bsize, tx_size);
+    } else {+ // skip forward transform
+ p->eobs[block] = 0;
+ *a = *l = 0;
+ return;
}
-  } else if (x->skip_txfm[plane] == 2) {- // fast path forward transform and quantization
- vp9_xform_quant_dc(x, plane, block, plane_bsize, tx_size);
-  } else {- // skip forward transform
- p->eobs[block] = 0;
- *a = *l = 0;
- return;
}
   if (x->optimize && (!x->skip_recode || !x->skip_optimize)) {--
⑨