Revert "add edge detector to rdopt"

This reverts commit 3539bf2413517edd56d1645e3b557d29d5d57128.

Reason for revert: There are nightly failures related to alignment. Let's revert and resubmit later.

Change-Id: I5810d165982cdb1500fac30a5491823773cb6b33
diff --git a/aom/aomcx.h b/aom/aomcx.h
index 9703cf8..9955ed8 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -1080,7 +1080,7 @@
 AOM_CTRL_USE_TYPE(AV1E_SET_MTU, unsigned int)
 #define AOM_CTRL_AV1E_SET_MTU
 
-AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */
+AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, aom_timing_info_type_t)
 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE
 
 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DF, unsigned int)
diff --git a/av1/common/txb_common.h b/av1/common/txb_common.h
index 698e95b..1dda51f 100644
--- a/av1/common/txb_common.h
+++ b/av1/common/txb_common.h
@@ -12,8 +12,6 @@
 #ifndef AOM_AV1_COMMON_TXB_COMMON_H_
 #define AOM_AV1_COMMON_TXB_COMMON_H_
 
-#include "av1/common/onyxc_int.h"
-
 extern const int16_t k_eob_group_start[12];
 extern const int16_t k_eob_offset_bits[12];
 
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index adeb4c6..83b156f 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -30,7 +30,6 @@
 #include "av1/common/idct.h"
 #include "av1/common/mvref_common.h"
 #include "av1/common/obmc.h"
-#include "av1/common/onyxc_int.h"
 #include "av1/common/pred_common.h"
 #include "av1/common/quant_common.h"
 #include "av1/common/reconinter.h"
@@ -12372,76 +12371,3 @@
     }
   }
 }
-
-static INLINE uint8_t get_pix(const uint8_t *src, int stride, int i, int j) {
-  return src[i + stride * j];
-}
-
-// 8-tap Gaussian convolution filter with sigma = 1.3, sums to 128,
-// all co-efficients must be even.
-DECLARE_ALIGNED(16, static const int16_t, gauss_filter[8]) = { 2,  12, 30, 40,
-                                                               30, 12, 2,  0 };
-
-void gaussian_blur(const uint8_t *src, int src_stride, int w, int h,
-                   uint8_t *dst) {
-  ConvolveParams conv_params = get_conv_params(0, 0, 0);
-  InterpFilterParams filter = { .filter_ptr = gauss_filter,
-                                .taps = 8,
-                                .subpel_shifts = 0,
-                                .interp_filter = EIGHTTAP_REGULAR };
-  av1_convolve_2d_sr(src, src_stride, dst, w, w, h, &filter, &filter, 0, 0,
-                     &conv_params);
-}
-
-/* Use standard 3x3 Sobel matrix. */
-static sobel_xy sobel(const uint8_t *input, int stride, int i, int j) {
-  int16_t s_x = get_pix(input, stride, i - 1, j - 1) -
-                get_pix(input, stride, i + 1, j - 1) +
-                2 * get_pix(input, stride, i - 1, j) -
-                2 * get_pix(input, stride, i + 1, j) +
-                get_pix(input, stride, i - 1, j + 1) -
-                get_pix(input, stride, i + 1, j + 1);
-  int16_t s_y = get_pix(input, stride, i - 1, j - 1) +
-                2 * get_pix(input, stride, i, j - 1) +
-                get_pix(input, stride, i + 1, j - 1) -
-                get_pix(input, stride, i - 1, j + 1) -
-                2 * get_pix(input, stride, i, j + 1) -
-                get_pix(input, stride, i + 1, j + 1);
-  sobel_xy r = { .x = s_x, .y = s_y };
-  return r;
-}
-
-static uint16_t edge_probability(const uint8_t *input, int w, int h) {
-  // The probability of an edge in the whole image is the same as the highest
-  // probability of an edge for any individual pixel. Use Soebel as the metric
-  // for finding an edge.
-  uint16_t highest = 0;
-  // Ignore the 1 pixel border around the image for the computation.
-  for (int i = 1; i < w - 1; ++i) {
-    for (int j = 1; j < h - 1; ++j) {
-      sobel_xy g = sobel(input, w, i, j);
-      uint16_t magnitude = (uint16_t)sqrt(g.x * g.x + g.y * g.y);
-      highest = AOMMAX(highest, magnitude);
-    }
-  }
-  return highest;
-}
-
-/* Uses most of the Canny edge detection algorithm to find if there are any
- * edges in the image.
- */
-uint16_t av1_edge_exists(const uint8_t *src, int src_stride, int w, int h) {
-  if (w < 3 || h < 3) {
-    return 0;
-  }
-  uint8_t *blurred = NULL;
-  blurred = (uint8_t *)aom_memalign(32, sizeof(*blurred) * w * h);
-  gaussian_blur(src, src_stride, w, h, blurred);
-  // Skip the non-maximum suppression step in Canny edge detection. We just
-  // want a probability of an edge existing in the buffer, which is determined
-  // by the strongest edge in it -- we don't need to eliminate the weaker
-  // edges. Use Soebel for the edge detection.
-  uint16_t prob = edge_probability(blurred, w, h);
-  aom_free(blurred);
-  return prob;
-}
diff --git a/av1/encoder/rdopt.h b/av1/encoder/rdopt.h
index 751de1b..4c11f90 100644
--- a/av1/encoder/rdopt.h
+++ b/av1/encoder/rdopt.h
@@ -126,26 +126,6 @@
     struct macroblock *x, int mi_row, int mi_col, struct RD_STATS *rd_cost,
     BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx, int64_t best_rd_so_far);
 
-/** Returns an integer indicating the strength of the edge.
- * 0 means no edge found, 556 is the strength of a solid black/white edge,
- * and the number may range higher if the signal is even stronger (e.g., on a
- * corner).
- */
-uint16_t av1_edge_exists(const uint8_t *src, int src_stride, int w, int h);
-
-/** Applies a Gaussian blur with sigma = 1.3. Used by av1_edge_exists and
- * tests.
- */
-void gaussian_blur(const uint8_t *src, int src_stride, int w, int h,
-                   uint8_t *dst);
-
-/* Applies standard 3x3 Sobel matrix. */
-typedef struct y4m_input y4m_input;
-
-/*The function used to perform chroma conversion.*/
-typedef void (*y4m_convert_func)(y4m_input *_y4m, unsigned char *_dst,
-                                 unsigned char *_src);
-
 #if CONFIG_COLLECT_INTER_MODE_RD_STATS
 void av1_inter_mode_data_init(struct TileDataEnc *tile_data);
 void av1_inter_mode_data_fit(TileDataEnc *tile_data, int rdmult);
diff --git a/test/edge_detect_test.cc b/test/edge_detect_test.cc
deleted file mode 100644
index 6dd33a9..0000000
--- a/test/edge_detect_test.cc
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2018, 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 "aom_mem/aom_mem.h"
-#include "av1/encoder/rdopt.h"
-#include "third_party/googletest/src/googletest/include/gtest/gtest.h"
-
-namespace {
-
-class GaussianBlurTest : public ::testing::Test {};
-
-/** Get the (x, y) value from the input; if i or j is outside of the width
- * or height, the nearest pixel value is returned.
- */
-static uint8_t get_xy(const uint8_t *data, int w, int h, int i, int j) {
-  return data[AOMMAX(AOMMIN(i, w - 1), 0) + w * AOMMAX(AOMMIN(j, h - 1), 0)];
-}
-
-/** Given the image data, creates a new image with padded values, so an
- * 8-tap filter can be convolved. The padded value is the same as the closest
- * value in the image. Returns a pointer to the start of the image in the
- * padded data. Must be freed with free_for_convolve.
- */
-uint8_t *pad_8tap_convolve(const uint8_t *data, int w, int h) {
-  // AVX2 optimizations require the width to be a multiple of 8 and the height
-  // a multiple of 2.
-  assert(w % 8 == 0);
-  assert(h % 2 == 0);
-  // For an 8-tap filter, we need to pad with 3 lines on top and on the left,
-  // and 4 lines on the right and bottom, for 7 extra lines.
-  const int pad_w = w + 7;
-  const int pad_h = h + 7;
-  uint8_t *dst = (uint8_t *)aom_memalign(32, pad_w * pad_h);
-  // Fill in the data from the original.
-  for (int i = 0; i < pad_w; ++i) {
-    for (int j = 0; j < pad_h; ++j) {
-      dst[i + j * pad_w] = get_xy(data, w, h, i - 3, j - 3);
-    }
-  }
-  return dst + (w + 7) * 3 + 3;
-}
-
-static void free_pad_8tap(uint8_t *padded, int width) {
-  aom_free(padded - (width + 7) * 3 - 3);
-}
-
-static int stride_8tap(int width) { return width + 7; }
-
-TEST(GaussianBlurTest, UniformBrightness) {
-  // Generate images ranging in size from 8x8 to 32x32, with
-  // varying levels of brightness. In all cases, the algorithm should
-  // produce the same output.
-  // Note that width must increment in values of 8 for the AVX2 code to work.
-  for (int width = 8; width <= 32; width += 8) {
-    // Note that height must be even for the AVX2 code to work.
-    for (int height = 4; height <= 10; height += 2) {
-      for (int brightness = 0; brightness < 255; ++brightness) {
-        uint8_t *orig = (uint8_t *)malloc(width * height);
-        for (int i = 0; i < width * height; ++i) {
-          orig[i] = brightness;
-        }
-        uint8_t *padded = pad_8tap_convolve(orig, width, height);
-        free(orig);
-        uint8_t *output = (uint8_t *)aom_memalign(32, width * height);
-        gaussian_blur(padded, stride_8tap(width), width, height, output);
-        for (int i = 0; i < width * height; ++i) {
-          ASSERT_EQ(brightness, output[i]);
-        }
-        free_pad_8tap(padded, width);
-        aom_free(output);
-      }
-    }
-  }
-}
-
-TEST(GaussianBlurTest, SimpleExample) {
-  // Randomly generated 8x2.
-  const uint8_t luma[16] = { 241, 147, 7,  90,  184, 103, 28,  186,
-                             2,   248, 49, 242, 114, 146, 127, 22 };
-  uint8_t expected[] = { 151, 132, 117, 119, 124, 117, 109, 113,
-                         111, 124, 129, 135, 135, 122, 103, 88 };
-  const int w = 8;
-  const int h = 2;
-  uint8_t *padded = pad_8tap_convolve(luma, w, h);
-  uint8_t *output = (uint8_t *)aom_memalign(32, w * h);
-  gaussian_blur(padded, stride_8tap(w), w, h, output);
-
-  for (int i = 0; i < w * h; ++i) {
-    ASSERT_EQ(expected[i], output[i]);
-  }
-
-  free_pad_8tap(padded, w);
-  aom_free(output);
-}
-
-class EdgeDetectTest : public ::testing::Test {};
-
-TEST(EdgeDetectTest, UniformBrightness) {
-  // Generate images ranging in size from 8x2 to 32x32, with
-  // varying levels of brightness. In all cases, the algorithm should
-  // produce the same output.
-  for (int width = 8; width <= 32; width += 8) {
-    for (int height = 2; height <= 32; height += 2) {
-      for (int brightness = 0; brightness < 255; ++brightness) {
-        uint8_t *orig = (uint8_t *)malloc(width * height);
-        for (int i = 0; i < width * height; ++i) {
-          orig[i] = brightness;
-        }
-        uint8_t *padded = pad_8tap_convolve(orig, width, height);
-        free(orig);
-        ASSERT_EQ(0,
-                  av1_edge_exists(padded, stride_8tap(width), width, height));
-        free_pad_8tap(padded, width);
-      }
-    }
-  }
-}
-
-// Generate images ranging in size from 8x2 to 32x32, black on one side
-// and white on the other.
-TEST(EdgeDetectTest, BlackWhite) {
-  for (int width = 8; width <= 32; width += 8) {
-    for (int height = 2; height <= 32; height += 2) {
-      uint8_t *orig = (uint8_t *)malloc(width * height);
-      for (int i = 0; i < width; ++i) {
-        for (int j = 0; j < height; ++j) {
-          if (i < width / 2) {
-            orig[i + j * width] = 0;
-          } else {
-            orig[i + j * width] = 255;
-          }
-        }
-      }
-      uint8_t *padded = pad_8tap_convolve(orig, width, height);
-      free(orig);
-      if (height < 3) {
-        ASSERT_EQ(0,
-                  av1_edge_exists(padded, stride_8tap(width), width, height));
-      } else {
-        ASSERT_LE(556,
-                  av1_edge_exists(padded, stride_8tap(width), width, height));
-      }
-      free_pad_8tap(padded, width);
-    }
-  }
-}
-
-}  // namespace
diff --git a/test/test.cmake b/test/test.cmake
index 513a0f1..b16ae14 100644
--- a/test/test.cmake
+++ b/test/test.cmake
@@ -179,7 +179,6 @@
               "${AOM_ROOT}/test/comp_avg_pred_test.cc"
               "${AOM_ROOT}/test/comp_avg_pred_test.h"
               "${AOM_ROOT}/test/comp_mask_variance_test.cc"
-              "${AOM_ROOT}/test/edge_detect_test.cc"
               "${AOM_ROOT}/test/encodetxb_test.cc"
               "${AOM_ROOT}/test/error_block_test.cc"
               "${AOM_ROOT}/test/fft_test.cc"