LCOV - code coverage report
Current view: top level - third_party/aom/av1/common - scale.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 9 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          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             : #ifndef AV1_COMMON_SCALE_H_
      13             : #define AV1_COMMON_SCALE_H_
      14             : 
      15             : #include "av1/common/mv.h"
      16             : #include "aom_dsp/aom_convolve.h"
      17             : 
      18             : #ifdef __cplusplus
      19             : extern "C" {
      20             : #endif
      21             : 
      22             : #define REF_SCALE_SHIFT 14
      23             : #define REF_NO_SCALE (1 << REF_SCALE_SHIFT)
      24             : #define REF_INVALID_SCALE -1
      25             : 
      26             : struct scale_factors {
      27             :   int x_scale_fp;  // horizontal fixed point scale factor
      28             :   int y_scale_fp;  // vertical fixed point scale factor
      29             :   int x_step_q4;
      30             :   int y_step_q4;
      31             : 
      32             :   int (*scale_value_x)(int val, const struct scale_factors *sf);
      33             :   int (*scale_value_y)(int val, const struct scale_factors *sf);
      34             : 
      35             :   convolve_fn_t predict[2][2][2];  // horiz, vert, avg
      36             : #if CONFIG_HIGHBITDEPTH
      37             :   highbd_convolve_fn_t highbd_predict[2][2][2];  // horiz, vert, avg
      38             : #endif                                           // CONFIG_HIGHBITDEPTH
      39             : };
      40             : 
      41             : MV32 av1_scale_mv(const MV *mv, int x, int y, const struct scale_factors *sf);
      42             : 
      43             : #if CONFIG_HIGHBITDEPTH
      44             : void av1_setup_scale_factors_for_frame(struct scale_factors *sf, int other_w,
      45             :                                        int other_h, int this_w, int this_h,
      46             :                                        int use_high);
      47             : #else
      48             : void av1_setup_scale_factors_for_frame(struct scale_factors *sf, int other_w,
      49             :                                        int other_h, int this_w, int this_h);
      50             : #endif  // CONFIG_HIGHBITDEPTH
      51             : 
      52           0 : static INLINE int av1_is_valid_scale(const struct scale_factors *sf) {
      53           0 :   return sf->x_scale_fp != REF_INVALID_SCALE &&
      54           0 :          sf->y_scale_fp != REF_INVALID_SCALE;
      55             : }
      56             : 
      57           0 : static INLINE int av1_is_scaled(const struct scale_factors *sf) {
      58           0 :   return av1_is_valid_scale(sf) &&
      59           0 :          (sf->x_scale_fp != REF_NO_SCALE || sf->y_scale_fp != REF_NO_SCALE);
      60             : }
      61             : 
      62           0 : static INLINE int valid_ref_frame_size(int ref_width, int ref_height,
      63             :                                        int this_width, int this_height) {
      64           0 :   return 2 * this_width >= ref_width && 2 * this_height >= ref_height &&
      65           0 :          this_width <= 16 * ref_width && this_height <= 16 * ref_height;
      66             : }
      67             : 
      68             : #ifdef __cplusplus
      69             : }  // extern "C"
      70             : #endif
      71             : 
      72             : #endif  // AV1_COMMON_SCALE_H_

Generated by: LCOV version 1.13