diff --git a/aom_dsp/aom_dsp_rtcd_defs.pl b/aom_dsp/aom_dsp_rtcd_defs.pl
index 6d873bc..d6fa90b 100644
--- a/aom_dsp/aom_dsp_rtcd_defs.pl
+++ b/aom_dsp/aom_dsp_rtcd_defs.pl
@@ -701,6 +701,34 @@
 #
 if (aom_config("CONFIG_AV1_ENCODER") eq "yes") {
   if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
+    add_proto qw/void aom_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct4x4 sse2/;
+
+    add_proto qw/void aom_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct4x4_1 sse2/;
+
+    add_proto qw/void aom_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct8x8 sse2/;
+
+    add_proto qw/void aom_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct8x8_1 sse2/;
+
+    add_proto qw/void aom_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct16x16 sse2/;
+
+    add_proto qw/void aom_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct16x16_1 sse2 avx2/;
+
+    add_proto qw/void aom_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32 sse2 avx2/;
+
+    add_proto qw/void aom_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32_rd sse2 avx2/;
+
+    add_proto qw/void aom_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32_1 sse2 avx2/;
+
+    # High bit depth
     add_proto qw/void aom_highbd_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
     specialize qw/aom_highbd_fdct4x4 sse2/;
 
@@ -724,33 +752,34 @@
 
     add_proto qw/void aom_highbd_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
     specialize qw/aom_highbd_fdct32x32_1/;
-  }   # CONFIG_AOM_HIGHBITDEPTH
-  add_proto qw/void aom_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct4x4 sse2 msa/;
+  } else {
+    add_proto qw/void aom_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct4x4 sse2 msa/;
 
-  add_proto qw/void aom_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct4x4_1 sse2/;
+    add_proto qw/void aom_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct4x4_1 sse2/;
 
-  add_proto qw/void aom_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct8x8 sse2 neon msa/, "$ssse3_x86_64";
+    add_proto qw/void aom_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct8x8 sse2 neon msa/, "$ssse3_x86_64";
 
-  add_proto qw/void aom_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct8x8_1 sse2 neon msa/;
+    add_proto qw/void aom_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct8x8_1 sse2 neon msa/;
 
-  add_proto qw/void aom_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct16x16 sse2 msa/;
+    add_proto qw/void aom_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct16x16 sse2 msa/;
 
-  add_proto qw/void aom_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct16x16_1 sse2 avx2 msa/;
+    add_proto qw/void aom_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct16x16_1 sse2 avx2 msa/;
 
-  add_proto qw/void aom_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct32x32 sse2 avx2 msa/;
+    add_proto qw/void aom_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32 sse2 avx2 msa/;
 
-  add_proto qw/void aom_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct32x32_rd sse2 avx2 msa/;
+    add_proto qw/void aom_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32_rd sse2 avx2 msa/;
 
-  add_proto qw/void aom_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
-  specialize qw/aom_fdct32x32_1 sse2 avx2 msa/;
+    add_proto qw/void aom_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
+    specialize qw/aom_fdct32x32_1 sse2 avx2 msa/;
+  }  # CONFIG_AOM_HIGHBITDEPTH
 }  # CONFIG_AV1_ENCODER
 
 #
diff --git a/av1/common/av1_convolve.c b/av1/common/av1_convolve.c
index 1f8d623..270ab70 100644
--- a/av1/common/av1_convolve.c
+++ b/av1/common/av1_convolve.c
@@ -1,3 +1,14 @@
+/*
+ * Copyright (c) 2016, Alliance for Open Media. All rights reserved
+ *
+ * This source code is subject to the terms of the BSD 2 Clause License and
+ * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
+ * was not distributed with this source code in the LICENSE file, you can
+ * obtain it at www.aomedia.org/license/software. If the Alliance for Open
+ * Media Patent License 1.0 was not distributed with this source code in the
+ * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
+ */
+
 #include <assert.h>
 #include <string.h>
 
diff --git a/av1/common/av1_convolve.h b/av1/common/av1_convolve.h
index 804c102..dafa032 100644
--- a/av1/common/av1_convolve.h
+++ b/av1/common/av1_convolve.h
@@ -1,3 +1,14 @@
+/*
+ * Copyright (c) 2016, Alliance for Open Media. All rights reserved
+ *
+ * This source code is subject to the terms of the BSD 2 Clause License and
+ * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
+ * was not distributed with this source code in the LICENSE file, you can
+ * obtain it at www.aomedia.org/license/software. If the Alliance for Open
+ * Media Patent License 1.0 was not distributed with this source code in the
+ * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
+ */
+
 #ifndef AV1_COMMON_AV1_CONVOLVE_H_
 #define AV1_COMMON_AV1_CONVOLVE_H_
 #include "av1/common/filter.h"
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index ecad3f4..bf5519b 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -567,117 +567,117 @@
                                     [PALETTE_COLORS - 1] = {
                                       {
                                           // 2 colors
-                                          { 230, 255, 128, 128, 128, 128, 128 },
-                                          { 214, 255, 128, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 240, 255, 128, 128, 128, 128, 128 },
-                                          { 73, 255, 128, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 130, 255, 128, 128, 128, 128, 128 },
-                                          { 227, 255, 128, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 188, 255, 128, 128, 128, 128, 128 },
-                                          { 75, 255, 128, 128, 128, 128, 128 },
-                                          { 250, 255, 128, 128, 128, 128, 128 },
-                                          { 223, 255, 128, 128, 128, 128, 128 },
-                                          { 252, 255, 128, 128, 128, 128, 128 },
+                                          { 230, 0, 0, 0, 0, 0, 0 },
+                                          { 214, 0, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 240, 0, 0, 0, 0, 0, 0 },
+                                          { 73, 0, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 130, 0, 0, 0, 0, 0, 0 },
+                                          { 227, 0, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 188, 0, 0, 0, 0, 0, 0 },
+                                          { 75, 0, 0, 0, 0, 0, 0 },
+                                          { 250, 0, 0, 0, 0, 0, 0 },
+                                          { 223, 0, 0, 0, 0, 0, 0 },
+                                          { 252, 0, 0, 0, 0, 0, 0 },
                                       },
                                       {
                                           // 3 colors
-                                          { 229, 137, 255, 128, 128, 128, 128 },
-                                          { 197, 120, 255, 128, 128, 128, 128 },
-                                          { 107, 195, 255, 128, 128, 128, 128 },
-                                          { 128, 128, 128, 128, 128, 128, 128 },
-                                          { 27, 151, 255, 128, 128, 128, 128 },
-                                          { 230, 130, 255, 128, 128, 128, 128 },
-                                          { 37, 230, 255, 128, 128, 128, 128 },
-                                          { 67, 221, 255, 128, 128, 128, 128 },
-                                          { 124, 230, 255, 128, 128, 128, 128 },
-                                          { 195, 109, 255, 128, 128, 128, 128 },
-                                          { 99, 122, 255, 128, 128, 128, 128 },
-                                          { 205, 208, 255, 128, 128, 128, 128 },
-                                          { 40, 235, 255, 128, 128, 128, 128 },
-                                          { 251, 132, 255, 128, 128, 128, 128 },
-                                          { 237, 186, 255, 128, 128, 128, 128 },
-                                          { 253, 112, 255, 128, 128, 128, 128 },
+                                          { 229, 137, 0, 0, 0, 0, 0 },
+                                          { 197, 120, 0, 0, 0, 0, 0 },
+                                          { 107, 195, 0, 0, 0, 0, 0 },
+                                          { 0, 0, 0, 0, 0, 0, 0 },
+                                          { 27, 151, 0, 0, 0, 0, 0 },
+                                          { 230, 130, 0, 0, 0, 0, 0 },
+                                          { 37, 230, 0, 0, 0, 0, 0 },
+                                          { 67, 221, 0, 0, 0, 0, 0 },
+                                          { 124, 230, 0, 0, 0, 0, 0 },
+                                          { 195, 109, 0, 0, 0, 0, 0 },
+                                          { 99, 122, 0, 0, 0, 0, 0 },
+                                          { 205, 208, 0, 0, 0, 0, 0 },
+                                          { 40, 235, 0, 0, 0, 0, 0 },
+                                          { 251, 132, 0, 0, 0, 0, 0 },
+                                          { 237, 186, 0, 0, 0, 0, 0 },
+                                          { 253, 112, 0, 0, 0, 0, 0 },
                                       },
                                       {
                                           // 4 colors
-                                          { 195, 87, 128, 255, 128, 128, 128 },
-                                          { 143, 100, 123, 255, 128, 128, 128 },
-                                          { 94, 124, 119, 255, 128, 128, 128 },
-                                          { 77, 91, 130, 255, 128, 128, 128 },
-                                          { 39, 114, 178, 255, 128, 128, 128 },
-                                          { 222, 94, 125, 255, 128, 128, 128 },
-                                          { 44, 203, 132, 255, 128, 128, 128 },
-                                          { 68, 175, 122, 255, 128, 128, 128 },
-                                          { 110, 187, 124, 255, 128, 128, 128 },
-                                          { 152, 91, 128, 255, 128, 128, 128 },
-                                          { 70, 109, 181, 255, 128, 128, 128 },
-                                          { 133, 113, 164, 255, 128, 128, 128 },
-                                          { 47, 205, 133, 255, 128, 128, 128 },
-                                          { 247, 94, 136, 255, 128, 128, 128 },
-                                          { 205, 122, 146, 255, 128, 128, 128 },
-                                          { 251, 100, 141, 255, 128, 128, 128 },
+                                          { 195, 87, 128, 0, 0, 0, 0 },
+                                          { 143, 100, 123, 0, 0, 0, 0 },
+                                          { 94, 124, 119, 0, 0, 0, 0 },
+                                          { 77, 91, 130, 0, 0, 0, 0 },
+                                          { 39, 114, 178, 0, 0, 0, 0 },
+                                          { 222, 94, 125, 0, 0, 0, 0 },
+                                          { 44, 203, 132, 0, 0, 0, 0 },
+                                          { 68, 175, 122, 0, 0, 0, 0 },
+                                          { 110, 187, 124, 0, 0, 0, 0 },
+                                          { 152, 91, 128, 0, 0, 0, 0 },
+                                          { 70, 109, 181, 0, 0, 0, 0 },
+                                          { 133, 113, 164, 0, 0, 0, 0 },
+                                          { 47, 205, 133, 0, 0, 0, 0 },
+                                          { 247, 94, 136, 0, 0, 0, 0 },
+                                          { 205, 122, 146, 0, 0, 0, 0 },
+                                          { 251, 100, 141, 0, 0, 0, 0 },
                                       },
                                       {
                                           // 5 colors
-                                          { 195, 65, 84, 125, 255, 128, 128 },
-                                          { 150, 76, 84, 121, 255, 128, 128 },
-                                          { 94, 110, 81, 117, 255, 128, 128 },
-                                          { 79, 85, 91, 139, 255, 128, 128 },
-                                          { 26, 102, 139, 127, 255, 128, 128 },
-                                          { 220, 73, 91, 119, 255, 128, 128 },
-                                          { 38, 203, 86, 127, 255, 128, 128 },
-                                          { 61, 186, 72, 124, 255, 128, 128 },
-                                          { 132, 199, 84, 128, 255, 128, 128 },
-                                          { 172, 52, 62, 120, 255, 128, 128 },
-                                          { 102, 89, 121, 122, 255, 128, 128 },
-                                          { 182, 48, 69, 186, 255, 128, 128 },
-                                          { 36, 206, 87, 126, 255, 128, 128 },
-                                          { 249, 55, 67, 122, 255, 128, 128 },
-                                          { 218, 88, 75, 122, 255, 128, 128 },
-                                          { 253, 64, 80, 119, 255, 128, 128 },
+                                          { 195, 65, 84, 125, 0, 0, 0 },
+                                          { 150, 76, 84, 121, 0, 0, 0 },
+                                          { 94, 110, 81, 117, 0, 0, 0 },
+                                          { 79, 85, 91, 139, 0, 0, 0 },
+                                          { 26, 102, 139, 127, 0, 0, 0 },
+                                          { 220, 73, 91, 119, 0, 0, 0 },
+                                          { 38, 203, 86, 127, 0, 0, 0 },
+                                          { 61, 186, 72, 124, 0, 0, 0 },
+                                          { 132, 199, 84, 128, 0, 0, 0 },
+                                          { 172, 52, 62, 120, 0, 0, 0 },
+                                          { 102, 89, 121, 122, 0, 0, 0 },
+                                          { 182, 48, 69, 186, 0, 0, 0 },
+                                          { 36, 206, 87, 126, 0, 0, 0 },
+                                          { 249, 55, 67, 122, 0, 0, 0 },
+                                          { 218, 88, 75, 122, 0, 0, 0 },
+                                          { 253, 64, 80, 119, 0, 0, 0 },
                                       },
                                       {
                                           // 6 colors
-                                          { 182, 54, 64, 75, 118, 255, 128 },
-                                          { 126, 67, 70, 76, 116, 255, 128 },
-                                          { 79, 92, 67, 85, 120, 255, 128 },
-                                          { 63, 61, 81, 118, 132, 255, 128 },
-                                          { 21, 80, 105, 83, 119, 255, 128 },
-                                          { 215, 72, 74, 74, 111, 255, 128 },
-                                          { 50, 176, 63, 79, 120, 255, 128 },
-                                          { 72, 148, 66, 77, 120, 255, 128 },
-                                          { 105, 177, 57, 78, 130, 255, 128 },
-                                          { 150, 66, 66, 80, 127, 255, 128 },
-                                          { 81, 76, 109, 85, 116, 255, 128 },
-                                          { 113, 81, 62, 96, 148, 255, 128 },
-                                          { 54, 179, 69, 82, 121, 255, 128 },
-                                          { 244, 47, 48, 67, 118, 255, 128 },
-                                          { 198, 83, 53, 65, 121, 255, 128 },
-                                          { 250, 42, 51, 69, 110, 255, 128 },
+                                          { 182, 54, 64, 75, 118, 0, 0 },
+                                          { 126, 67, 70, 76, 116, 0, 0 },
+                                          { 79, 92, 67, 85, 120, 0, 0 },
+                                          { 63, 61, 81, 118, 132, 0, 0 },
+                                          { 21, 80, 105, 83, 119, 0, 0 },
+                                          { 215, 72, 74, 74, 111, 0, 0 },
+                                          { 50, 176, 63, 79, 120, 0, 0 },
+                                          { 72, 148, 66, 77, 120, 0, 0 },
+                                          { 105, 177, 57, 78, 130, 0, 0 },
+                                          { 150, 66, 66, 80, 127, 0, 0 },
+                                          { 81, 76, 109, 85, 116, 0, 0 },
+                                          { 113, 81, 62, 96, 148, 0, 0 },
+                                          { 54, 179, 69, 82, 121, 0, 0 },
+                                          { 244, 47, 48, 67, 118, 0, 0 },
+                                          { 198, 83, 53, 65, 121, 0, 0 },
+                                          { 250, 42, 51, 69, 110, 0, 0 },
                                       },
                                       {
                                           // 7 colors
-                                          { 182, 45, 54, 62, 74, 113, 255 },
-                                          { 124, 63, 57, 62, 77, 114, 255 },
-                                          { 77, 80, 56, 66, 76, 117, 255 },
-                                          { 63, 57, 69, 98, 85, 131, 255 },
-                                          { 19, 81, 98, 63, 80, 116, 255 },
-                                          { 215, 56, 60, 63, 68, 105, 255 },
-                                          { 50, 174, 50, 60, 79, 118, 255 },
-                                          { 68, 151, 50, 58, 73, 117, 255 },
-                                          { 104, 182, 53, 57, 79, 127, 255 },
-                                          { 156, 50, 51, 63, 77, 111, 255 },
-                                          { 88, 67, 97, 59, 82, 120, 255 },
-                                          { 114, 81, 46, 65, 103, 132, 255 },
-                                          { 55, 166, 57, 66, 82, 120, 255 },
-                                          { 245, 34, 38, 43, 63, 114, 255 },
-                                          { 203, 68, 45, 47, 60, 118, 255 },
-                                          { 250, 35, 37, 47, 66, 110, 255 },
+                                          { 182, 45, 54, 62, 74, 113, 0 },
+                                          { 124, 63, 57, 62, 77, 114, 0 },
+                                          { 77, 80, 56, 66, 76, 117, 0 },
+                                          { 63, 57, 69, 98, 85, 131, 0 },
+                                          { 19, 81, 98, 63, 80, 116, 0 },
+                                          { 215, 56, 60, 63, 68, 105, 0 },
+                                          { 50, 174, 50, 60, 79, 118, 0 },
+                                          { 68, 151, 50, 58, 73, 117, 0 },
+                                          { 104, 182, 53, 57, 79, 127, 0 },
+                                          { 156, 50, 51, 63, 77, 111, 0 },
+                                          { 88, 67, 97, 59, 82, 120, 0 },
+                                          { 114, 81, 46, 65, 103, 132, 0 },
+                                          { 55, 166, 57, 66, 82, 120, 0 },
+                                          { 245, 34, 38, 43, 63, 114, 0 },
+                                          { 203, 68, 45, 47, 60, 118, 0 },
+                                          { 250, 35, 37, 47, 66, 110, 0 },
                                       },
                                       {
                                           // 8 colors
@@ -700,141 +700,144 @@
                                       }
                                     };
 
-const aom_prob av1_default_palette_uv_color_prob
-    [PALETTE_MAX_SIZE - 1][PALETTE_COLOR_CONTEXTS]
-    [PALETTE_COLORS - 1] = { {
-                                 // 2 colors
-                                 { 228, 255, 128, 128, 128, 128, 128 },
-                                 { 195, 255, 128, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 228, 255, 128, 128, 128, 128, 128 },
-                                 { 71, 255, 128, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 129, 255, 128, 128, 128, 128, 128 },
-                                 { 206, 255, 128, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 136, 255, 128, 128, 128, 128, 128 },
-                                 { 98, 255, 128, 128, 128, 128, 128 },
-                                 { 236, 255, 128, 128, 128, 128, 128 },
-                                 { 222, 255, 128, 128, 128, 128, 128 },
-                                 { 249, 255, 128, 128, 128, 128, 128 },
-                             },
-                             {
-                                 // 3 colors
-                                 { 198, 136, 255, 128, 128, 128, 128 },
-                                 { 178, 105, 255, 128, 128, 128, 128 },
-                                 { 100, 206, 255, 128, 128, 128, 128 },
-                                 { 128, 128, 128, 128, 128, 128, 128 },
-                                 { 12, 136, 255, 128, 128, 128, 128 },
-                                 { 219, 134, 255, 128, 128, 128, 128 },
-                                 { 50, 198, 255, 128, 128, 128, 128 },
-                                 { 61, 231, 255, 128, 128, 128, 128 },
-                                 { 110, 209, 255, 128, 128, 128, 128 },
-                                 { 173, 106, 255, 128, 128, 128, 128 },
-                                 { 145, 166, 255, 128, 128, 128, 128 },
-                                 { 156, 175, 255, 128, 128, 128, 128 },
-                                 { 69, 183, 255, 128, 128, 128, 128 },
-                                 { 241, 163, 255, 128, 128, 128, 128 },
-                                 { 224, 160, 255, 128, 128, 128, 128 },
-                                 { 246, 154, 255, 128, 128, 128, 128 },
-                             },
-                             {
-                                 // 4 colors
-                                 { 173, 88, 143, 255, 128, 128, 128 },
-                                 { 146, 81, 127, 255, 128, 128, 128 },
-                                 { 84, 134, 102, 255, 128, 128, 128 },
-                                 { 69, 138, 140, 255, 128, 128, 128 },
-                                 { 31, 103, 200, 255, 128, 128, 128 },
-                                 { 217, 101, 139, 255, 128, 128, 128 },
-                                 { 51, 174, 121, 255, 128, 128, 128 },
-                                 { 64, 177, 109, 255, 128, 128, 128 },
-                                 { 96, 179, 145, 255, 128, 128, 128 },
-                                 { 164, 77, 114, 255, 128, 128, 128 },
-                                 { 87, 94, 156, 255, 128, 128, 128 },
-                                 { 105, 57, 173, 255, 128, 128, 128 },
-                                 { 63, 158, 137, 255, 128, 128, 128 },
-                                 { 236, 102, 156, 255, 128, 128, 128 },
-                                 { 197, 115, 153, 255, 128, 128, 128 },
-                                 { 245, 106, 154, 255, 128, 128, 128 },
-                             },
-                             {
-                                 // 5 colors
-                                 { 179, 64, 97, 129, 255, 128, 128 },
-                                 { 137, 56, 88, 125, 255, 128, 128 },
-                                 { 82, 107, 61, 118, 255, 128, 128 },
-                                 { 59, 113, 86, 115, 255, 128, 128 },
-                                 { 23, 88, 118, 130, 255, 128, 128 },
-                                 { 213, 66, 90, 125, 255, 128, 128 },
-                                 { 37, 181, 103, 121, 255, 128, 128 },
-                                 { 47, 188, 61, 131, 255, 128, 128 },
-                                 { 104, 185, 103, 144, 255, 128, 128 },
-                                 { 163, 39, 76, 112, 255, 128, 128 },
-                                 { 94, 74, 131, 126, 255, 128, 128 },
-                                 { 142, 42, 103, 163, 255, 128, 128 },
-                                 { 53, 162, 99, 149, 255, 128, 128 },
-                                 { 239, 54, 84, 108, 255, 128, 128 },
-                                 { 203, 84, 110, 147, 255, 128, 128 },
-                                 { 248, 70, 105, 151, 255, 128, 128 },
-                             },
-                             {
-                                 // 6 colors
-                                 { 189, 50, 67, 90, 130, 255, 128 },
-                                 { 114, 50, 55, 90, 123, 255, 128 },
-                                 { 66, 76, 54, 82, 128, 255, 128 },
-                                 { 43, 69, 69, 80, 129, 255, 128 },
-                                 { 22, 59, 87, 88, 141, 255, 128 },
-                                 { 203, 49, 68, 87, 122, 255, 128 },
-                                 { 43, 157, 74, 104, 146, 255, 128 },
-                                 { 54, 138, 51, 95, 138, 255, 128 },
-                                 { 82, 171, 58, 102, 146, 255, 128 },
-                                 { 129, 38, 59, 64, 168, 255, 128 },
-                                 { 56, 67, 119, 92, 112, 255, 128 },
-                                 { 96, 62, 53, 132, 82, 255, 128 },
-                                 { 60, 147, 77, 108, 145, 255, 128 },
-                                 { 238, 76, 73, 93, 148, 255, 128 },
-                                 { 189, 86, 73, 103, 157, 255, 128 },
-                                 { 246, 62, 75, 83, 167, 255, 128 },
-                             },
-                             {
-                                 // 7 colors
-                                 { 179, 42, 51, 73, 99, 134, 255 },
-                                 { 119, 52, 52, 61, 64, 114, 255 },
-                                 { 53, 77, 35, 65, 71, 131, 255 },
-                                 { 38, 70, 51, 68, 89, 144, 255 },
-                                 { 23, 65, 128, 73, 97, 131, 255 },
-                                 { 210, 47, 52, 63, 81, 143, 255 },
-                                 { 42, 159, 57, 68, 98, 143, 255 },
-                                 { 49, 153, 45, 82, 93, 143, 255 },
-                                 { 81, 169, 52, 72, 113, 151, 255 },
-                                 { 136, 46, 35, 56, 75, 96, 255 },
-                                 { 57, 84, 109, 47, 107, 131, 255 },
-                                 { 128, 78, 57, 36, 128, 85, 255 },
-                                 { 54, 149, 68, 77, 94, 153, 255 },
-                                 { 243, 58, 50, 71, 81, 167, 255 },
-                                 { 189, 92, 64, 70, 121, 173, 255 },
-                                 { 248, 35, 38, 51, 82, 201, 255 },
-                             },
-                             {
-                                 // 8 colors
-                                 { 201, 40, 36, 42, 64, 92, 123 },
-                                 { 116, 43, 33, 43, 73, 102, 128 },
-                                 { 46, 77, 37, 69, 62, 78, 150 },
-                                 { 40, 65, 52, 50, 76, 89, 133 },
-                                 { 28, 48, 91, 17, 64, 77, 133 },
-                                 { 218, 43, 43, 37, 56, 72, 163 },
-                                 { 41, 155, 44, 83, 82, 129, 180 },
-                                 { 44, 141, 29, 55, 64, 89, 147 },
-                                 { 92, 166, 48, 45, 59, 126, 179 },
-                                 { 169, 35, 49, 41, 36, 99, 139 },
-                                 { 55, 77, 77, 56, 60, 75, 156 },
-                                 { 155, 81, 51, 64, 57, 182, 255 },
-                                 { 60, 134, 49, 49, 93, 128, 174 },
-                                 { 244, 98, 51, 46, 22, 73, 238 },
-                                 { 189, 70, 40, 87, 93, 79, 201 },
-                                 { 248, 54, 49, 40, 29, 42, 227 },
-                             } };
+const aom_prob
+    av1_default_palette_uv_color_prob[PALETTE_MAX_SIZE - 1]
+                                     [PALETTE_COLOR_CONTEXTS]
+                                     [PALETTE_COLORS - 1] = {
+                                       {
+                                           // 2 colors
+                                           { 228, 0, 0, 0, 0, 0, 0 },
+                                           { 195, 0, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 228, 0, 0, 0, 0, 0, 0 },
+                                           { 71, 0, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 129, 0, 0, 0, 0, 0, 0 },
+                                           { 206, 0, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 136, 0, 0, 0, 0, 0, 0 },
+                                           { 98, 0, 0, 0, 0, 0, 0 },
+                                           { 236, 0, 0, 0, 0, 0, 0 },
+                                           { 222, 0, 0, 0, 0, 0, 0 },
+                                           { 249, 0, 0, 0, 0, 0, 0 },
+                                       },
+                                       {
+                                           // 3 colors
+                                           { 198, 136, 0, 0, 0, 0, 0 },
+                                           { 178, 105, 0, 0, 0, 0, 0 },
+                                           { 100, 206, 0, 0, 0, 0, 0 },
+                                           { 0, 0, 0, 0, 0, 0, 0 },
+                                           { 12, 136, 0, 0, 0, 0, 0 },
+                                           { 219, 134, 0, 0, 0, 0, 0 },
+                                           { 50, 198, 0, 0, 0, 0, 0 },
+                                           { 61, 231, 0, 0, 0, 0, 0 },
+                                           { 110, 209, 0, 0, 0, 0, 0 },
+                                           { 173, 106, 0, 0, 0, 0, 0 },
+                                           { 145, 166, 0, 0, 0, 0, 0 },
+                                           { 156, 175, 0, 0, 0, 0, 0 },
+                                           { 69, 183, 0, 0, 0, 0, 0 },
+                                           { 241, 163, 0, 0, 0, 0, 0 },
+                                           { 224, 160, 0, 0, 0, 0, 0 },
+                                           { 246, 154, 0, 0, 0, 0, 0 },
+                                       },
+                                       {
+                                           // 4 colors
+                                           { 173, 88, 143, 0, 0, 0, 0 },
+                                           { 146, 81, 127, 0, 0, 0, 0 },
+                                           { 84, 134, 102, 0, 0, 0, 0 },
+                                           { 69, 138, 140, 0, 0, 0, 0 },
+                                           { 31, 103, 200, 0, 0, 0, 0 },
+                                           { 217, 101, 139, 0, 0, 0, 0 },
+                                           { 51, 174, 121, 0, 0, 0, 0 },
+                                           { 64, 177, 109, 0, 0, 0, 0 },
+                                           { 96, 179, 145, 0, 0, 0, 0 },
+                                           { 164, 77, 114, 0, 0, 0, 0 },
+                                           { 87, 94, 156, 0, 0, 0, 0 },
+                                           { 105, 57, 173, 0, 0, 0, 0 },
+                                           { 63, 158, 137, 0, 0, 0, 0 },
+                                           { 236, 102, 156, 0, 0, 0, 0 },
+                                           { 197, 115, 153, 0, 0, 0, 0 },
+                                           { 245, 106, 154, 0, 0, 0, 0 },
+                                       },
+                                       {
+                                           // 5 colors
+                                           { 179, 64, 97, 129, 0, 0, 0 },
+                                           { 137, 56, 88, 125, 0, 0, 0 },
+                                           { 82, 107, 61, 118, 0, 0, 0 },
+                                           { 59, 113, 86, 115, 0, 0, 0 },
+                                           { 23, 88, 118, 130, 0, 0, 0 },
+                                           { 213, 66, 90, 125, 0, 0, 0 },
+                                           { 37, 181, 103, 121, 0, 0, 0 },
+                                           { 47, 188, 61, 131, 0, 0, 0 },
+                                           { 104, 185, 103, 144, 0, 0, 0 },
+                                           { 163, 39, 76, 112, 0, 0, 0 },
+                                           { 94, 74, 131, 126, 0, 0, 0 },
+                                           { 142, 42, 103, 163, 0, 0, 0 },
+                                           { 53, 162, 99, 149, 0, 0, 0 },
+                                           { 239, 54, 84, 108, 0, 0, 0 },
+                                           { 203, 84, 110, 147, 0, 0, 0 },
+                                           { 248, 70, 105, 151, 0, 0, 0 },
+                                       },
+                                       {
+                                           // 6 colors
+                                           { 189, 50, 67, 90, 130, 0, 0 },
+                                           { 114, 50, 55, 90, 123, 0, 0 },
+                                           { 66, 76, 54, 82, 128, 0, 0 },
+                                           { 43, 69, 69, 80, 129, 0, 0 },
+                                           { 22, 59, 87, 88, 141, 0, 0 },
+                                           { 203, 49, 68, 87, 122, 0, 0 },
+                                           { 43, 157, 74, 104, 146, 0, 0 },
+                                           { 54, 138, 51, 95, 138, 0, 0 },
+                                           { 82, 171, 58, 102, 146, 0, 0 },
+                                           { 129, 38, 59, 64, 168, 0, 0 },
+                                           { 56, 67, 119, 92, 112, 0, 0 },
+                                           { 96, 62, 53, 132, 82, 0, 0 },
+                                           { 60, 147, 77, 108, 145, 0, 0 },
+                                           { 238, 76, 73, 93, 148, 0, 0 },
+                                           { 189, 86, 73, 103, 157, 0, 0 },
+                                           { 246, 62, 75, 83, 167, 0, 0 },
+                                       },
+                                       {
+                                           // 7 colors
+                                           { 179, 42, 51, 73, 99, 134, 0 },
+                                           { 119, 52, 52, 61, 64, 114, 0 },
+                                           { 53, 77, 35, 65, 71, 131, 0 },
+                                           { 38, 70, 51, 68, 89, 144, 0 },
+                                           { 23, 65, 128, 73, 97, 131, 0 },
+                                           { 210, 47, 52, 63, 81, 143, 0 },
+                                           { 42, 159, 57, 68, 98, 143, 0 },
+                                           { 49, 153, 45, 82, 93, 143, 0 },
+                                           { 81, 169, 52, 72, 113, 151, 0 },
+                                           { 136, 46, 35, 56, 75, 96, 0 },
+                                           { 57, 84, 109, 47, 107, 131, 0 },
+                                           { 128, 78, 57, 36, 128, 85, 0 },
+                                           { 54, 149, 68, 77, 94, 153, 0 },
+                                           { 243, 58, 50, 71, 81, 167, 0 },
+                                           { 189, 92, 64, 70, 121, 173, 0 },
+                                           { 248, 35, 38, 51, 82, 201, 0 },
+                                       },
+                                       {
+                                           // 8 colors
+                                           { 201, 40, 36, 42, 64, 92, 123 },
+                                           { 116, 43, 33, 43, 73, 102, 128 },
+                                           { 46, 77, 37, 69, 62, 78, 150 },
+                                           { 40, 65, 52, 50, 76, 89, 133 },
+                                           { 28, 48, 91, 17, 64, 77, 133 },
+                                           { 218, 43, 43, 37, 56, 72, 163 },
+                                           { 41, 155, 44, 83, 82, 129, 180 },
+                                           { 44, 141, 29, 55, 64, 89, 147 },
+                                           { 92, 166, 48, 45, 59, 126, 179 },
+                                           { 169, 35, 49, 41, 36, 99, 139 },
+                                           { 55, 77, 77, 56, 60, 75, 156 },
+                                           { 155, 81, 51, 64, 57, 182, 255 },
+                                           { 60, 134, 49, 49, 93, 128, 174 },
+                                           { 244, 98, 51, 46, 22, 73, 238 },
+                                           { 189, 70, 40, 87, 93, 79, 201 },
+                                           { 248, 54, 49, 40, 29, 42, 227 },
+                                       }
+                                     };
 
 static const int palette_color_context_lookup[PALETTE_COLOR_CONTEXTS] = {
   // (3, 0, 0, 0), (3, 2, 0, 0), (3, 3, 2, 0), (3, 3, 2, 2),
@@ -902,30 +905,24 @@
 int av1_get_palette_color_context(const uint8_t *color_map, int cols, int r,
                                   int c, int n, uint8_t *color_order,
                                   int *color_idx) {
-  int i, j, max, max_idx, temp;
+  int i;
+  // The +10 below should not be needed. But we get a warning "array subscript
+  // is above array bounds [-Werror=array-bounds]" without it, possibly due to
+  // this (or similar) bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
   int scores[PALETTE_MAX_SIZE + 10];
-  int weights[4] = { 3, 2, 3, 2 };
+  const int weights[4] = { 3, 2, 3, 2 };
   int color_ctx = 0;
   int color_neighbors[4];
   int inverse_color_order[PALETTE_MAX_SIZE];
   assert(n <= PALETTE_MAX_SIZE);
 
-  if (c - 1 >= 0)
-    color_neighbors[0] = color_map[r * cols + c - 1];
-  else
-    color_neighbors[0] = -1;
-  if (c - 1 >= 0 && r - 1 >= 0)
-    color_neighbors[1] = color_map[(r - 1) * cols + c - 1];
-  else
-    color_neighbors[1] = -1;
-  if (r - 1 >= 0)
-    color_neighbors[2] = color_map[(r - 1) * cols + c];
-  else
-    color_neighbors[2] = -1;
-  if (r - 1 >= 0 && c + 1 <= cols - 1)
-    color_neighbors[3] = color_map[(r - 1) * cols + c + 1];
-  else
-    color_neighbors[3] = -1;
+  color_neighbors[0] = (c - 1 >= 0) ? color_map[r * cols + c - 1] : -1;
+  color_neighbors[1] =
+      (c - 1 >= 0 && r - 1 >= 0) ? color_map[(r - 1) * cols + c - 1] : -1;
+  color_neighbors[2] = (r - 1 >= 0) ? color_map[(r - 1) * cols + c] : -1;
+  color_neighbors[3] = (r - 1 >= 0 && c + 1 <= cols - 1)
+                           ? color_map[(r - 1) * cols + c + 1]
+                           : -1;
 
   for (i = 0; i < PALETTE_MAX_SIZE; ++i) {
     color_order[i] = i;
@@ -933,23 +930,25 @@
   }
   memset(scores, 0, PALETTE_MAX_SIZE * sizeof(scores[0]));
   for (i = 0; i < 4; ++i) {
-    if (color_neighbors[i] >= 0) scores[color_neighbors[i]] += weights[i];
+    if (color_neighbors[i] >= 0) {
+      scores[color_neighbors[i]] += weights[i];
+    }
   }
 
+  // Get the top 4 scores (sorted from large to small).
   for (i = 0; i < 4; ++i) {
-    max = scores[i];
-    max_idx = i;
-    j = i + 1;
-    while (j < n) {
+    int max = scores[i];
+    int max_idx = i;
+    int j;
+    for (j = i + 1; j < n; ++j) {
       if (scores[j] > max) {
         max = scores[j];
         max_idx = j;
       }
-      ++j;
     }
 
     if (max_idx != i) {
-      temp = scores[i];
+      int temp = scores[i];
       scores[i] = scores[max_idx];
       scores[max_idx] = temp;
 
diff --git a/av1/common/reconinter.h b/av1/common/reconinter.h
index 351c7d4..5082d7b 100644
--- a/av1/common/reconinter.h
+++ b/av1/common/reconinter.h
@@ -418,7 +418,6 @@
                           const YV12_BUFFER_CONFIG *src, int mi_row, int mi_col,
                           const struct scale_factors *sf);
 
-#if CONFIG_DUAL_FILTER
 // Detect if the block have sub-pixel level motion vectors
 // per component.
 static INLINE int has_subpel_mv_component(const MODE_INFO *const mi,
@@ -460,57 +459,21 @@
 
   return 0;
 }
-#endif
 
 static INLINE int av1_is_interp_needed(const MACROBLOCKD *const xd) {
   MODE_INFO *const mi = xd->mi[0];
-  MB_MODE_INFO *const mbmi = &mi->mbmi;
-  const BLOCK_SIZE bsize = mbmi->sb_type;
-  const int is_compound = has_second_ref(mbmi);
-  int intpel_mv = 1;
-  int plane;
-
-#if SUPPORT_NONINTERPOLATING_FILTERS
-  // TODO(debargha): This is is currently only for experimentation
-  // with non-interpolating filters. Remove later.
-  // If any of the filters are non-interpolating, then indicate the
-  // interpolation filter always.
-  int i;
-  for (i = 0; i < SWITCHABLE_FILTERS; ++i) {
-    if (!IsInterpolatingFilter(i)) return 1;
-  }
-#endif
-
-  // For scaled references, interpolation filter is indicated all the time.
-  if (av1_is_scaled(&xd->block_refs[0]->sf)) return 1;
-  if (is_compound && av1_is_scaled(&xd->block_refs[1]->sf)) return 1;
-
-  if (bsize < BLOCK_8X8) {
-    for (plane = 0; plane < MAX_MB_PLANE; ++plane) {
-      const PARTITION_TYPE bp = BLOCK_8X8 - bsize;
-      const struct macroblockd_plane *const pd = &xd->plane[plane];
-      const int have_vsplit = bp != PARTITION_HORZ;
-      const int have_hsplit = bp != PARTITION_VERT;
-      const int num_4x4_w = 2 >> ((!have_vsplit) | pd->subsampling_x);
-      const int num_4x4_h = 2 >> ((!have_hsplit) | pd->subsampling_y);
-      int ref;
-      for (ref = 0; ref < 1 + is_compound; ++ref) {
-        int x, y;
-        for (y = 0; y < num_4x4_h; ++y)
-          for (x = 0; x < num_4x4_w; ++x) {
-            const MV mv = average_split_mvs(pd, mi, ref, y * 2 + x);
-            if (mv_has_subpel(&mv)) return 1;
-          }
+  const int is_compound = has_second_ref(&mi->mbmi);
+  int ref;
+  for (ref = 0; ref < 1 + is_compound; ++ref) {
+    int row_col;
+    for (row_col = 0; row_col < 2; ++row_col) {
+      const int dir = (ref << 1) + row_col;
+      if (has_subpel_mv_component(mi, xd, dir)) {
+        return 1;
       }
     }
-    return 0;
-  } else {
-    intpel_mv = !mv_has_subpel(&mbmi->mv[0].as_mv);
-    if (is_compound && intpel_mv) {
-      intpel_mv &= !mv_has_subpel(&mbmi->mv[1].as_mv);
-    }
   }
-  return !intpel_mv;
+  return 0;
 }
 
 #if CONFIG_MOTION_VAR
