LCOV - code coverage report
Current view: top level - ASM_SSE4_1 - obmc_variance_sse4.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 22 0.0 %
Date: 2019-11-25 17:38:06 Functions: 0 22 0.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
       3             :  *
       4             :  * This source code is subject to the terms of the BSD 2 Clause License and
       5             :  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
       6             :  * was not distributed with this source code in the LICENSE file, you can
       7             :  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
       8             :  * Media Patent License 1.0 was not distributed with this source code in the
       9             :  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
      10             :  */
      11             : 
      12             : #include <assert.h>
      13             : #include <immintrin.h>
      14             : #include "aom_dsp_rtcd.h"
      15             : #include "synonyms.h"
      16             : 
      17             : ////////////////////////////////////////////////////////////////////////////////
      18             : // 8 bit
      19             : ////////////////////////////////////////////////////////////////////////////////
      20             : // 2 tap bilinear filters
      21             : #define BIL_SUBPEL_BITS 3
      22             : #define BIL_SUBPEL_SHIFTS (1 << BIL_SUBPEL_BITS)
      23             : static const uint8_t bilinear_filters_2t[BIL_SUBPEL_SHIFTS][2] = {
      24             :   { 128, 0 }, { 112, 16 }, { 96, 32 }, { 80, 48 },
      25             :   { 64, 64 }, { 48, 80 },  { 32, 96 }, { 16, 112 },
      26             : };
      27             : 
      28             : void aom_var_filter_block2d_bil_first_pass_ssse3(
      29             :     const uint8_t *a, uint16_t *b, unsigned int src_pixels_per_line,
      30             :     unsigned int pixel_step, unsigned int output_height,
      31             :     unsigned int output_width, const uint8_t *filter);
      32             : 
      33             : void aom_var_filter_block2d_bil_second_pass_ssse3(
      34             :     const uint16_t *a, uint8_t *b, unsigned int src_pixels_per_line,
      35             :     unsigned int pixel_step, unsigned int output_height,
      36             :     unsigned int output_width, const uint8_t *filter);
      37             : 
      38             : 
      39             : #define OBMC_SUBPIX_VAR(W, H)                                                \
      40             :   uint32_t aom_obmc_sub_pixel_variance##W##x##H##_sse4_1(                    \
      41             :       const uint8_t *pre, int pre_stride, int xoffset, int yoffset,          \
      42             :       const int32_t *wsrc, const int32_t *mask, unsigned int *sse) {         \
      43             :     uint16_t fdata3[(H + 1) * W];                                            \
      44             :     uint8_t temp2[H * W];                                                    \
      45             :                                                                              \
      46             :     aom_var_filter_block2d_bil_first_pass_ssse3(                             \
      47             :         pre, fdata3, pre_stride, 1, H + 1, W, bilinear_filters_2t[xoffset]); \
      48             :     aom_var_filter_block2d_bil_second_pass_ssse3(                            \
      49             :         fdata3, temp2, W, W, H, W, bilinear_filters_2t[yoffset]);            \
      50             :                                                                              \
      51             :     return aom_obmc_variance##W##x##H##_avx2(temp2, W, wsrc, mask, sse);   \
      52             :   }
      53             : 
      54           0 : OBMC_SUBPIX_VAR(128, 128)
      55           0 : OBMC_SUBPIX_VAR(128, 64)
      56           0 : OBMC_SUBPIX_VAR(64, 128)
      57           0 : OBMC_SUBPIX_VAR(64, 64)
      58           0 : OBMC_SUBPIX_VAR(64, 32)
      59           0 : OBMC_SUBPIX_VAR(32, 64)
      60           0 : OBMC_SUBPIX_VAR(32, 32)
      61           0 : OBMC_SUBPIX_VAR(32, 16)
      62           0 : OBMC_SUBPIX_VAR(16, 32)
      63           0 : OBMC_SUBPIX_VAR(16, 16)
      64           0 : OBMC_SUBPIX_VAR(16, 8)
      65           0 : OBMC_SUBPIX_VAR(8, 16)
      66           0 : OBMC_SUBPIX_VAR(8, 8)
      67           0 : OBMC_SUBPIX_VAR(8, 4)
      68           0 : OBMC_SUBPIX_VAR(4, 8)
      69           0 : OBMC_SUBPIX_VAR(4, 4)
      70           0 : OBMC_SUBPIX_VAR(4, 16)
      71           0 : OBMC_SUBPIX_VAR(16, 4)
      72           0 : OBMC_SUBPIX_VAR(8, 32)
      73           0 : OBMC_SUBPIX_VAR(32, 8)
      74           0 : OBMC_SUBPIX_VAR(16, 64)
      75           0 : OBMC_SUBPIX_VAR(64, 16)

Generated by: LCOV version 1.14