]> granicus.if.org Git - libvpx/commitdiff
Add dist scale in get_mv_dist
authorAngie Chiang <angiebird@google.com>
Thu, 31 Jan 2019 23:01:06 +0000 (15:01 -0800)
committerAngie Chiang <angiebird@google.com>
Thu, 31 Jan 2019 23:01:06 +0000 (15:01 -0800)
Add MACRO VP9_DIST_SCALE_LOG2 represents distortion's log scale

Change-Id: Ic496a31e6d3f04626510f8c4661af464a002e361

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_rd.h
vp9/encoder/vp9_rdopt.c

index b8c86ea439bdcb16de86c44059e429ff107b47c3..362077a6cc4065a18dc7fdcd69cca398d8f14344 100644 (file)
@@ -6146,7 +6146,7 @@ static double get_mv_dist(int mv_mode, VP9_COMP *cpi, MACROBLOCKD *xd,
     // TODO(angiebird): Consider subpixel when computing the sse.
     cpi->fn_ptr[bsize].vf(src.buf, src.stride, get_buf_from_mv(&pre, &full_mv),
                           pre.stride, &sse);
-    return (double)sse;
+    return (double)(sse << VP9_DIST_SCALE_LOG2);
   } else {
     assert(0);
     return 0;
index fa85f2176f54de52a1d4bcef23f5cbe61c182244..062ca3277cf7765040a1a0bcc842de22da36073c 100644 (file)
@@ -42,6 +42,9 @@ extern "C" {
 #define RD_THRESH_MAX_FACT 64
 #define RD_THRESH_INC 1
 
+#define VP9_DIST_SCALE_LOG2 4
+#define VP9_DIST_SCALE (1 << VP9_DIST_SCALE_LOG2)
+
 // This enumerator type needs to be kept aligned with the mode order in
 // const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
 typedef enum {
index c1a079ff080b1edf8d8ea4bd9c06a845d96cf23a..031401e1bdf72854f918c12f8e38c8d72a102624 100644 (file)
@@ -273,9 +273,9 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize, MACROBLOCK *x,
   }
 
   *skip_txfm_sb = skip_flag;
-  *skip_sse_sb = total_sse << 4;
+  *skip_sse_sb = total_sse << VP9_DIST_SCALE_LOG2;
   *out_rate_sum = (int)rate_sum;
-  *out_dist_sum = dist_sum << 4;
+  *out_dist_sum = dist_sum << VP9_DIST_SCALE_LOG2;
 }
 
 #if CONFIG_VP9_HIGHBITDEPTH