shithub: libvpx

Download patch

ref: b88b49a7bc6a5b08ae0af0304eee67ced7d55352
parent: 8a4310b16055ed88a99399dae1c691a0b18e5307
parent: f01ad926d0b2b5c7f79f39f05168d6837cfd54a7
author: Jingning Han <jingning@google.com>
date: Tue Dec 3 04:47:41 EST 2013

Merge "Fix intra prediction ref selection in skip_encode"

--- a/vp9/encoder/vp9_encodemb.c
+++ b/vp9/encoder/vp9_encodemb.c
@@ -559,8 +559,9 @@
       mode = plane == 0 ? mbmi->mode : mbmi->uv_mode;
       block >>= 6;
       vp9_predict_intra_block(xd, block, bwl, TX_32X32, mode,
-                              dst, pd->dst.stride, dst, pd->dst.stride);
-
+                              x->skip_encode ? src : dst,
+                              x->skip_encode ? p->src.stride : pd->dst.stride,
+                              dst, pd->dst.stride);
       if (!x->skip_recode) {
         vp9_subtract_block(32, 32, src_diff, diff_stride,
                            src, p->src.stride, dst, pd->dst.stride);
@@ -582,7 +583,9 @@
       mode = plane == 0 ? mbmi->mode : mbmi->uv_mode;
       block >>= 4;
       vp9_predict_intra_block(xd, block, bwl, TX_16X16, mode,
-                              dst, pd->dst.stride, dst, pd->dst.stride);
+                              x->skip_encode ? src : dst,
+                              x->skip_encode ? p->src.stride : pd->dst.stride,
+                              dst, pd->dst.stride);
       if (!x->skip_recode) {
         vp9_subtract_block(16, 16, src_diff, diff_stride,
                            src, p->src.stride, dst, pd->dst.stride);
@@ -600,7 +603,9 @@
       mode = plane == 0 ? mbmi->mode : mbmi->uv_mode;
       block >>= 2;
       vp9_predict_intra_block(xd, block, bwl, TX_8X8, mode,
-                              dst, pd->dst.stride, dst, pd->dst.stride);
+                              x->skip_encode ? src : dst,
+                              x->skip_encode ? p->src.stride : pd->dst.stride,
+                              dst, pd->dst.stride);
       if (!x->skip_recode) {
         vp9_subtract_block(8, 8, src_diff, diff_stride,
                            src, p->src.stride, dst, pd->dst.stride);
@@ -621,7 +626,9 @@
         mode = plane == 0 ? mbmi->mode : mbmi->uv_mode;
 
       vp9_predict_intra_block(xd, block, bwl, TX_4X4, mode,
-                              dst, pd->dst.stride, dst, pd->dst.stride);
+                              x->skip_encode ? src : dst,
+                              x->skip_encode ? p->src.stride : pd->dst.stride,
+                              dst, pd->dst.stride);
 
       if (!x->skip_recode) {
         vp9_subtract_block(4, 4, src_diff, diff_stride,
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -788,7 +788,7 @@
         sf->last_partitioning_redo_frequency = 3;
 
         sf->use_uv_intra_rd_estimate = 1;
-        sf->skip_encode_sb = 0;
+        sf->skip_encode_sb = 1;
         sf->use_lp32x32fdct = 1;
         sf->subpel_iters_per_step = 1;
         sf->use_fast_coef_updates = 2;
@@ -821,7 +821,7 @@
         sf->last_partitioning_redo_frequency = 3;
 
         sf->use_uv_intra_rd_estimate = 1;
-        sf->skip_encode_sb = 0;
+        sf->skip_encode_sb = 1;
         sf->use_lp32x32fdct = 1;
         sf->subpel_iters_per_step = 1;
         sf->use_fast_coef_updates = 2;