ref: 769e6567e9c4467709af0b536d6da2e7f67b76a0
parent: 7a9d8f1efe688c47b8a012622904d2bad6a8c3cd
 parent: 5d677c97eb3737e15399dcd5c1ee26dc5a3f7ba9
	author: Yunqing Wang <yunqingwang@google.com>
	date: Thu Mar 12 13:16:48 EDT 2015
	
Merge "Minorly modify model_rd_for_sb_y function"
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -217,6 +217,8 @@
const uint32_t ac_quant = pd->dequant[1];
unsigned int var = cpi->fn_ptr[bsize].vf(p->src.buf, p->src.stride,
pd->dst.buf, pd->dst.stride, &sse);
+ int skip_dc = 0;
+
*var_y = var;
*sse_y = sse;
@@ -258,6 +260,9 @@
// Check if dc coefficient can be quantized to zero.
if (sse_tx - var_tx < dc_thr || sse == var)
x->skip_txfm[0] = 1;
+    } else {+ if (sse_tx - var_tx < dc_thr || sse == var)
+ skip_dc = 1;
}
}
@@ -267,21 +272,28 @@
return;
}
+  if (!skip_dc) {#if CONFIG_VP9_HIGHBITDEPTH
-  if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {+    if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {+ vp9_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bsize],
+ dc_quant >> (xd->bd - 5), &rate, &dist);
+    } else {+ vp9_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bsize],
+ dc_quant >> 3, &rate, &dist);
+ }
+#else
vp9_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bsize],
- dc_quant >> (xd->bd - 5), &rate, &dist);
-  } else {- vp9_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bsize],
dc_quant >> 3, &rate, &dist);
- }
-#else
- vp9_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bsize],
- dc_quant >> 3, &rate, &dist);
#endif // CONFIG_VP9_HIGHBITDEPTH
+ }
- *out_rate_sum = rate >> 1;
- *out_dist_sum = dist << 3;
+  if (!skip_dc) {+ *out_rate_sum = rate >> 1;
+ *out_dist_sum = dist << 3;
+  } else {+ *out_rate_sum = 0;
+ *out_dist_sum = (sse - var) << 4;
+ }
#if CONFIG_VP9_HIGHBITDEPTH
   if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {--
⑨