/src/aom/av1/common/av1_txfm.h
Line | Count | Source |
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 AOM_AV1_COMMON_AV1_TXFM_H_ |
13 | | #define AOM_AV1_COMMON_AV1_TXFM_H_ |
14 | | |
15 | | #include <assert.h> |
16 | | #include <inttypes.h> |
17 | | #include <math.h> |
18 | | #include <stdio.h> |
19 | | |
20 | | #include "config/aom_config.h" |
21 | | |
22 | | #include "av1/common/enums.h" |
23 | | #include "av1/common/blockd.h" |
24 | | #include "aom/aom_integer.h" |
25 | | #include "aom_dsp/aom_dsp_common.h" |
26 | | |
27 | | #ifdef __cplusplus |
28 | | extern "C" { |
29 | | #endif |
30 | | |
31 | | #if !defined(DO_RANGE_CHECK_CLAMP) |
32 | | #define DO_RANGE_CHECK_CLAMP 0 |
33 | | #endif |
34 | | |
35 | | extern const int32_t av1_cospi_arr_data[4][64]; |
36 | | extern const int32_t av1_sinpi_arr_data[4][5]; |
37 | | |
38 | 0 | #define MAX_TXFM_STAGE_NUM 12 |
39 | | |
40 | | static const int cos_bit_min = 10; |
41 | | |
42 | 73.6M | #define NewSqrt2Bits ((int32_t)12) |
43 | | // 2^12 * sqrt(2) |
44 | | static const int32_t NewSqrt2 = 5793; |
45 | | // 2^12 / sqrt(2) |
46 | | static const int32_t NewInvSqrt2 = 2896; |
47 | | |
48 | 28.1M | static inline const int32_t *cospi_arr(int n) { |
49 | 28.1M | return av1_cospi_arr_data[n - cos_bit_min]; |
50 | 28.1M | } Unexecuted instantiation: av1_dx_iface.c:cospi_arr Unexecuted instantiation: decodeframe.c:cospi_arr Unexecuted instantiation: decodemv.c:cospi_arr Unexecuted instantiation: decoder.c:cospi_arr Unexecuted instantiation: decodetxb.c:cospi_arr Unexecuted instantiation: detokenize.c:cospi_arr Unexecuted instantiation: obu.c:cospi_arr Unexecuted instantiation: av1_rtcd.c:cospi_arr Unexecuted instantiation: highbd_convolve_ssse3.c:cospi_arr Unexecuted instantiation: intrapred_sse4.c:cospi_arr Unexecuted instantiation: intrapred_avx2.c:cospi_arr Unexecuted instantiation: highbd_convolve_avx2.c:cospi_arr Unexecuted instantiation: alloccommon.c:cospi_arr Unexecuted instantiation: av1_inv_txfm2d.c:cospi_arr Unexecuted instantiation: av1_loopfilter.c:cospi_arr Unexecuted instantiation: av1_txfm.c:cospi_arr Unexecuted instantiation: blockd.c:cospi_arr Unexecuted instantiation: cdef.c:cospi_arr Unexecuted instantiation: cdef_block.c:cospi_arr Unexecuted instantiation: cfl.c:cospi_arr Unexecuted instantiation: convolve.c:cospi_arr Unexecuted instantiation: entropy.c:cospi_arr Unexecuted instantiation: entropymode.c:cospi_arr Unexecuted instantiation: entropymv.c:cospi_arr Unexecuted instantiation: idct.c:cospi_arr Unexecuted instantiation: mvref_common.c:cospi_arr Unexecuted instantiation: pred_common.c:cospi_arr Unexecuted instantiation: quant_common.c:cospi_arr Unexecuted instantiation: reconinter.c:cospi_arr Unexecuted instantiation: reconintra.c:cospi_arr Unexecuted instantiation: resize.c:cospi_arr Unexecuted instantiation: restoration.c:cospi_arr Unexecuted instantiation: scale.c:cospi_arr Unexecuted instantiation: scan.c:cospi_arr Unexecuted instantiation: thread_common.c:cospi_arr Unexecuted instantiation: tile_common.c:cospi_arr Unexecuted instantiation: txb_common.c:cospi_arr Unexecuted instantiation: warped_motion.c:cospi_arr Unexecuted instantiation: cfl_sse2.c:cospi_arr Unexecuted instantiation: convolve_2d_sse2.c:cospi_arr Unexecuted instantiation: convolve_sse2.c:cospi_arr Unexecuted instantiation: jnt_convolve_sse2.c:cospi_arr Unexecuted instantiation: resize_sse2.c:cospi_arr Unexecuted instantiation: wiener_convolve_sse2.c:cospi_arr av1_inv_txfm_ssse3.c:cospi_arr Line | Count | Source | 48 | 6.03M | static inline const int32_t *cospi_arr(int n) { | 49 | 6.03M | return av1_cospi_arr_data[n - cos_bit_min]; | 50 | 6.03M | } |
Unexecuted instantiation: cfl_ssse3.c:cospi_arr Unexecuted instantiation: jnt_convolve_ssse3.c:cospi_arr Unexecuted instantiation: resize_ssse3.c:cospi_arr Unexecuted instantiation: highbd_convolve_2d_ssse3.c:cospi_arr Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:cospi_arr Unexecuted instantiation: reconinter_ssse3.c:cospi_arr Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:cospi_arr Unexecuted instantiation: av1_convolve_scale_sse4.c:cospi_arr Unexecuted instantiation: av1_txfm_sse4.c:cospi_arr Unexecuted instantiation: cdef_block_sse4.c:cospi_arr Unexecuted instantiation: filterintra_sse4.c:cospi_arr highbd_inv_txfm_sse4.c:cospi_arr Line | Count | Source | 48 | 5.99M | static inline const int32_t *cospi_arr(int n) { | 49 | 5.99M | return av1_cospi_arr_data[n - cos_bit_min]; | 50 | 5.99M | } |
Unexecuted instantiation: intra_edge_sse4.c:cospi_arr Unexecuted instantiation: reconinter_sse4.c:cospi_arr Unexecuted instantiation: selfguided_sse4.c:cospi_arr Unexecuted instantiation: warp_plane_sse4.c:cospi_arr Unexecuted instantiation: highbd_convolve_2d_sse4.c:cospi_arr Unexecuted instantiation: highbd_jnt_convolve_sse4.c:cospi_arr Unexecuted instantiation: highbd_warp_plane_sse4.c:cospi_arr av1_inv_txfm_avx2.c:cospi_arr Line | Count | Source | 48 | 2.86M | static inline const int32_t *cospi_arr(int n) { | 49 | 2.86M | return av1_cospi_arr_data[n - cos_bit_min]; | 50 | 2.86M | } |
Unexecuted instantiation: cdef_block_avx2.c:cospi_arr Unexecuted instantiation: cfl_avx2.c:cospi_arr Unexecuted instantiation: convolve_2d_avx2.c:cospi_arr Unexecuted instantiation: convolve_avx2.c:cospi_arr highbd_inv_txfm_avx2.c:cospi_arr Line | Count | Source | 48 | 13.3M | static inline const int32_t *cospi_arr(int n) { | 49 | 13.3M | return av1_cospi_arr_data[n - cos_bit_min]; | 50 | 13.3M | } |
Unexecuted instantiation: jnt_convolve_avx2.c:cospi_arr Unexecuted instantiation: reconinter_avx2.c:cospi_arr Unexecuted instantiation: resize_avx2.c:cospi_arr Unexecuted instantiation: selfguided_avx2.c:cospi_arr Unexecuted instantiation: warp_plane_avx2.c:cospi_arr Unexecuted instantiation: wiener_convolve_avx2.c:cospi_arr Unexecuted instantiation: highbd_convolve_2d_avx2.c:cospi_arr Unexecuted instantiation: highbd_jnt_convolve_avx2.c:cospi_arr Unexecuted instantiation: highbd_wiener_convolve_avx2.c:cospi_arr Unexecuted instantiation: highbd_warp_affine_avx2.c:cospi_arr Unexecuted instantiation: av1_inv_txfm1d.c:cospi_arr |
51 | | |
52 | 3.32M | static inline const int32_t *sinpi_arr(int n) { |
53 | 3.32M | return av1_sinpi_arr_data[n - cos_bit_min]; |
54 | 3.32M | } Unexecuted instantiation: av1_dx_iface.c:sinpi_arr Unexecuted instantiation: decodeframe.c:sinpi_arr Unexecuted instantiation: decodemv.c:sinpi_arr Unexecuted instantiation: decoder.c:sinpi_arr Unexecuted instantiation: decodetxb.c:sinpi_arr Unexecuted instantiation: detokenize.c:sinpi_arr Unexecuted instantiation: obu.c:sinpi_arr Unexecuted instantiation: av1_rtcd.c:sinpi_arr Unexecuted instantiation: highbd_convolve_ssse3.c:sinpi_arr Unexecuted instantiation: intrapred_sse4.c:sinpi_arr Unexecuted instantiation: intrapred_avx2.c:sinpi_arr Unexecuted instantiation: highbd_convolve_avx2.c:sinpi_arr Unexecuted instantiation: alloccommon.c:sinpi_arr Unexecuted instantiation: av1_inv_txfm2d.c:sinpi_arr Unexecuted instantiation: av1_loopfilter.c:sinpi_arr Unexecuted instantiation: av1_txfm.c:sinpi_arr Unexecuted instantiation: blockd.c:sinpi_arr Unexecuted instantiation: cdef.c:sinpi_arr Unexecuted instantiation: cdef_block.c:sinpi_arr Unexecuted instantiation: cfl.c:sinpi_arr Unexecuted instantiation: convolve.c:sinpi_arr Unexecuted instantiation: entropy.c:sinpi_arr Unexecuted instantiation: entropymode.c:sinpi_arr Unexecuted instantiation: entropymv.c:sinpi_arr Unexecuted instantiation: idct.c:sinpi_arr Unexecuted instantiation: mvref_common.c:sinpi_arr Unexecuted instantiation: pred_common.c:sinpi_arr Unexecuted instantiation: quant_common.c:sinpi_arr Unexecuted instantiation: reconinter.c:sinpi_arr Unexecuted instantiation: reconintra.c:sinpi_arr Unexecuted instantiation: resize.c:sinpi_arr Unexecuted instantiation: restoration.c:sinpi_arr Unexecuted instantiation: scale.c:sinpi_arr Unexecuted instantiation: scan.c:sinpi_arr Unexecuted instantiation: thread_common.c:sinpi_arr Unexecuted instantiation: tile_common.c:sinpi_arr Unexecuted instantiation: txb_common.c:sinpi_arr Unexecuted instantiation: warped_motion.c:sinpi_arr Unexecuted instantiation: cfl_sse2.c:sinpi_arr Unexecuted instantiation: convolve_2d_sse2.c:sinpi_arr Unexecuted instantiation: convolve_sse2.c:sinpi_arr Unexecuted instantiation: jnt_convolve_sse2.c:sinpi_arr Unexecuted instantiation: resize_sse2.c:sinpi_arr Unexecuted instantiation: wiener_convolve_sse2.c:sinpi_arr av1_inv_txfm_ssse3.c:sinpi_arr Line | Count | Source | 52 | 890k | static inline const int32_t *sinpi_arr(int n) { | 53 | 890k | return av1_sinpi_arr_data[n - cos_bit_min]; | 54 | 890k | } |
Unexecuted instantiation: cfl_ssse3.c:sinpi_arr Unexecuted instantiation: jnt_convolve_ssse3.c:sinpi_arr Unexecuted instantiation: resize_ssse3.c:sinpi_arr Unexecuted instantiation: highbd_convolve_2d_ssse3.c:sinpi_arr Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:sinpi_arr Unexecuted instantiation: reconinter_ssse3.c:sinpi_arr Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:sinpi_arr Unexecuted instantiation: av1_convolve_scale_sse4.c:sinpi_arr Unexecuted instantiation: av1_txfm_sse4.c:sinpi_arr Unexecuted instantiation: cdef_block_sse4.c:sinpi_arr Unexecuted instantiation: filterintra_sse4.c:sinpi_arr highbd_inv_txfm_sse4.c:sinpi_arr Line | Count | Source | 52 | 2.43M | static inline const int32_t *sinpi_arr(int n) { | 53 | 2.43M | return av1_sinpi_arr_data[n - cos_bit_min]; | 54 | 2.43M | } |
Unexecuted instantiation: intra_edge_sse4.c:sinpi_arr Unexecuted instantiation: reconinter_sse4.c:sinpi_arr Unexecuted instantiation: selfguided_sse4.c:sinpi_arr Unexecuted instantiation: warp_plane_sse4.c:sinpi_arr Unexecuted instantiation: highbd_convolve_2d_sse4.c:sinpi_arr Unexecuted instantiation: highbd_jnt_convolve_sse4.c:sinpi_arr Unexecuted instantiation: highbd_warp_plane_sse4.c:sinpi_arr Unexecuted instantiation: av1_inv_txfm_avx2.c:sinpi_arr Unexecuted instantiation: cdef_block_avx2.c:sinpi_arr Unexecuted instantiation: cfl_avx2.c:sinpi_arr Unexecuted instantiation: convolve_2d_avx2.c:sinpi_arr Unexecuted instantiation: convolve_avx2.c:sinpi_arr Unexecuted instantiation: highbd_inv_txfm_avx2.c:sinpi_arr Unexecuted instantiation: jnt_convolve_avx2.c:sinpi_arr Unexecuted instantiation: reconinter_avx2.c:sinpi_arr Unexecuted instantiation: resize_avx2.c:sinpi_arr Unexecuted instantiation: selfguided_avx2.c:sinpi_arr Unexecuted instantiation: warp_plane_avx2.c:sinpi_arr Unexecuted instantiation: wiener_convolve_avx2.c:sinpi_arr Unexecuted instantiation: highbd_convolve_2d_avx2.c:sinpi_arr Unexecuted instantiation: highbd_jnt_convolve_avx2.c:sinpi_arr Unexecuted instantiation: highbd_wiener_convolve_avx2.c:sinpi_arr Unexecuted instantiation: highbd_warp_affine_avx2.c:sinpi_arr Unexecuted instantiation: av1_inv_txfm1d.c:sinpi_arr |
55 | | |
56 | | // The reduced bit-width and permuted arrays are only used in the Arm Neon |
57 | | // implementations in av1_fwd_txfm2d_neon.c and highbd_fwd_txfm_neon.c for now. |
58 | | #if HAVE_NEON |
59 | | // Store cospi/sinpi costants in Q2.13 format. |
60 | | // See: https://en.wikipedia.org/wiki/Q_(number_format) |
61 | | extern const int16_t av1_cospi_arr_q13_data[4][128]; |
62 | | extern const int16_t av1_sinpi_arr_q13_data[4][4]; |
63 | | |
64 | | extern const int32_t av1_cospi_arr_s32_data[4][66]; |
65 | | |
66 | | static inline const int16_t *cospi_arr_q13(int n) { |
67 | | return av1_cospi_arr_q13_data[n - cos_bit_min]; |
68 | | } |
69 | | |
70 | | static inline const int16_t *sinpi_arr_q13(int n) { |
71 | | return av1_sinpi_arr_q13_data[n - cos_bit_min]; |
72 | | } |
73 | | |
74 | | static inline const int32_t *cospi_arr_s32(int n) { |
75 | | return av1_cospi_arr_s32_data[n - cos_bit_min]; |
76 | | } |
77 | | #endif // HAVE_NEON |
78 | | |
79 | 0 | static inline int32_t range_check_value(int32_t value, int8_t bit) { |
80 | | #if CONFIG_COEFFICIENT_RANGE_CHECKING |
81 | | const int64_t max_value = (1LL << (bit - 1)) - 1; |
82 | | const int64_t min_value = -(1LL << (bit - 1)); |
83 | | if (value < min_value || value > max_value) { |
84 | | fprintf(stderr, "coeff out of bit range, value: %d bit %d\n", value, bit); |
85 | | #if !CONFIG_AV1_ENCODER |
86 | | assert(0); |
87 | | #endif |
88 | | } |
89 | | #endif // CONFIG_COEFFICIENT_RANGE_CHECKING |
90 | 0 | #if DO_RANGE_CHECK_CLAMP |
91 | 0 | bit = AOMMIN(bit, 31); |
92 | 0 | return clamp(value, -(1 << (bit - 1)), (1 << (bit - 1)) - 1); |
93 | 0 | #endif // DO_RANGE_CHECK_CLAMP |
94 | 0 | (void)bit; |
95 | 0 | return value; |
96 | 0 | } Unexecuted instantiation: av1_dx_iface.c:range_check_value Unexecuted instantiation: decodeframe.c:range_check_value Unexecuted instantiation: decodemv.c:range_check_value Unexecuted instantiation: decoder.c:range_check_value Unexecuted instantiation: decodetxb.c:range_check_value Unexecuted instantiation: detokenize.c:range_check_value Unexecuted instantiation: obu.c:range_check_value Unexecuted instantiation: av1_rtcd.c:range_check_value Unexecuted instantiation: highbd_convolve_ssse3.c:range_check_value Unexecuted instantiation: intrapred_sse4.c:range_check_value Unexecuted instantiation: intrapred_avx2.c:range_check_value Unexecuted instantiation: highbd_convolve_avx2.c:range_check_value Unexecuted instantiation: alloccommon.c:range_check_value Unexecuted instantiation: av1_inv_txfm2d.c:range_check_value Unexecuted instantiation: av1_loopfilter.c:range_check_value Unexecuted instantiation: av1_txfm.c:range_check_value Unexecuted instantiation: blockd.c:range_check_value Unexecuted instantiation: cdef.c:range_check_value Unexecuted instantiation: cdef_block.c:range_check_value Unexecuted instantiation: cfl.c:range_check_value Unexecuted instantiation: convolve.c:range_check_value Unexecuted instantiation: entropy.c:range_check_value Unexecuted instantiation: entropymode.c:range_check_value Unexecuted instantiation: entropymv.c:range_check_value Unexecuted instantiation: idct.c:range_check_value Unexecuted instantiation: mvref_common.c:range_check_value Unexecuted instantiation: pred_common.c:range_check_value Unexecuted instantiation: quant_common.c:range_check_value Unexecuted instantiation: reconinter.c:range_check_value Unexecuted instantiation: reconintra.c:range_check_value Unexecuted instantiation: resize.c:range_check_value Unexecuted instantiation: restoration.c:range_check_value Unexecuted instantiation: scale.c:range_check_value Unexecuted instantiation: scan.c:range_check_value Unexecuted instantiation: thread_common.c:range_check_value Unexecuted instantiation: tile_common.c:range_check_value Unexecuted instantiation: txb_common.c:range_check_value Unexecuted instantiation: warped_motion.c:range_check_value Unexecuted instantiation: cfl_sse2.c:range_check_value Unexecuted instantiation: convolve_2d_sse2.c:range_check_value Unexecuted instantiation: convolve_sse2.c:range_check_value Unexecuted instantiation: jnt_convolve_sse2.c:range_check_value Unexecuted instantiation: resize_sse2.c:range_check_value Unexecuted instantiation: wiener_convolve_sse2.c:range_check_value Unexecuted instantiation: av1_inv_txfm_ssse3.c:range_check_value Unexecuted instantiation: cfl_ssse3.c:range_check_value Unexecuted instantiation: jnt_convolve_ssse3.c:range_check_value Unexecuted instantiation: resize_ssse3.c:range_check_value Unexecuted instantiation: highbd_convolve_2d_ssse3.c:range_check_value Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:range_check_value Unexecuted instantiation: reconinter_ssse3.c:range_check_value Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:range_check_value Unexecuted instantiation: av1_convolve_scale_sse4.c:range_check_value Unexecuted instantiation: av1_txfm_sse4.c:range_check_value Unexecuted instantiation: cdef_block_sse4.c:range_check_value Unexecuted instantiation: filterintra_sse4.c:range_check_value Unexecuted instantiation: highbd_inv_txfm_sse4.c:range_check_value Unexecuted instantiation: intra_edge_sse4.c:range_check_value Unexecuted instantiation: reconinter_sse4.c:range_check_value Unexecuted instantiation: selfguided_sse4.c:range_check_value Unexecuted instantiation: warp_plane_sse4.c:range_check_value Unexecuted instantiation: highbd_convolve_2d_sse4.c:range_check_value Unexecuted instantiation: highbd_jnt_convolve_sse4.c:range_check_value Unexecuted instantiation: highbd_warp_plane_sse4.c:range_check_value Unexecuted instantiation: av1_inv_txfm_avx2.c:range_check_value Unexecuted instantiation: cdef_block_avx2.c:range_check_value Unexecuted instantiation: cfl_avx2.c:range_check_value Unexecuted instantiation: convolve_2d_avx2.c:range_check_value Unexecuted instantiation: convolve_avx2.c:range_check_value Unexecuted instantiation: highbd_inv_txfm_avx2.c:range_check_value Unexecuted instantiation: jnt_convolve_avx2.c:range_check_value Unexecuted instantiation: reconinter_avx2.c:range_check_value Unexecuted instantiation: resize_avx2.c:range_check_value Unexecuted instantiation: selfguided_avx2.c:range_check_value Unexecuted instantiation: warp_plane_avx2.c:range_check_value Unexecuted instantiation: wiener_convolve_avx2.c:range_check_value Unexecuted instantiation: highbd_convolve_2d_avx2.c:range_check_value Unexecuted instantiation: highbd_jnt_convolve_avx2.c:range_check_value Unexecuted instantiation: highbd_wiener_convolve_avx2.c:range_check_value Unexecuted instantiation: highbd_warp_affine_avx2.c:range_check_value Unexecuted instantiation: av1_inv_txfm1d.c:range_check_value |
97 | | |
98 | 0 | static inline int64_t range_check_value64(int64_t value, int8_t bit) { |
99 | | #if CONFIG_COEFFICIENT_RANGE_CHECKING |
100 | | const int64_t max_value = (1LL << (bit - 1)) - 1; |
101 | | const int64_t min_value = -(1LL << (bit - 1)); |
102 | | if (value < min_value || value > max_value) { |
103 | | fprintf(stderr, "coeff out of bit range, value: %" PRId64 " bit %d\n", |
104 | | value, bit); |
105 | | #if !CONFIG_AV1_ENCODER |
106 | | assert(0); |
107 | | #endif |
108 | | } |
109 | | #endif // CONFIG_COEFFICIENT_RANGE_CHECKING |
110 | 0 | #if DO_RANGE_CHECK_CLAMP |
111 | 0 | bit = AOMMIN(bit, 63); |
112 | 0 | return clamp64(value, -(1LL << (bit - 1)), (1LL << (bit - 1)) - 1); |
113 | 0 | #endif // DO_RANGE_CHECK_CLAMP |
114 | 0 | (void)bit; |
115 | 0 | return value; |
116 | 0 | } Unexecuted instantiation: av1_dx_iface.c:range_check_value64 Unexecuted instantiation: decodeframe.c:range_check_value64 Unexecuted instantiation: decodemv.c:range_check_value64 Unexecuted instantiation: decoder.c:range_check_value64 Unexecuted instantiation: decodetxb.c:range_check_value64 Unexecuted instantiation: detokenize.c:range_check_value64 Unexecuted instantiation: obu.c:range_check_value64 Unexecuted instantiation: av1_rtcd.c:range_check_value64 Unexecuted instantiation: highbd_convolve_ssse3.c:range_check_value64 Unexecuted instantiation: intrapred_sse4.c:range_check_value64 Unexecuted instantiation: intrapred_avx2.c:range_check_value64 Unexecuted instantiation: highbd_convolve_avx2.c:range_check_value64 Unexecuted instantiation: alloccommon.c:range_check_value64 Unexecuted instantiation: av1_inv_txfm2d.c:range_check_value64 Unexecuted instantiation: av1_loopfilter.c:range_check_value64 Unexecuted instantiation: av1_txfm.c:range_check_value64 Unexecuted instantiation: blockd.c:range_check_value64 Unexecuted instantiation: cdef.c:range_check_value64 Unexecuted instantiation: cdef_block.c:range_check_value64 Unexecuted instantiation: cfl.c:range_check_value64 Unexecuted instantiation: convolve.c:range_check_value64 Unexecuted instantiation: entropy.c:range_check_value64 Unexecuted instantiation: entropymode.c:range_check_value64 Unexecuted instantiation: entropymv.c:range_check_value64 Unexecuted instantiation: idct.c:range_check_value64 Unexecuted instantiation: mvref_common.c:range_check_value64 Unexecuted instantiation: pred_common.c:range_check_value64 Unexecuted instantiation: quant_common.c:range_check_value64 Unexecuted instantiation: reconinter.c:range_check_value64 Unexecuted instantiation: reconintra.c:range_check_value64 Unexecuted instantiation: resize.c:range_check_value64 Unexecuted instantiation: restoration.c:range_check_value64 Unexecuted instantiation: scale.c:range_check_value64 Unexecuted instantiation: scan.c:range_check_value64 Unexecuted instantiation: thread_common.c:range_check_value64 Unexecuted instantiation: tile_common.c:range_check_value64 Unexecuted instantiation: txb_common.c:range_check_value64 Unexecuted instantiation: warped_motion.c:range_check_value64 Unexecuted instantiation: cfl_sse2.c:range_check_value64 Unexecuted instantiation: convolve_2d_sse2.c:range_check_value64 Unexecuted instantiation: convolve_sse2.c:range_check_value64 Unexecuted instantiation: jnt_convolve_sse2.c:range_check_value64 Unexecuted instantiation: resize_sse2.c:range_check_value64 Unexecuted instantiation: wiener_convolve_sse2.c:range_check_value64 Unexecuted instantiation: av1_inv_txfm_ssse3.c:range_check_value64 Unexecuted instantiation: cfl_ssse3.c:range_check_value64 Unexecuted instantiation: jnt_convolve_ssse3.c:range_check_value64 Unexecuted instantiation: resize_ssse3.c:range_check_value64 Unexecuted instantiation: highbd_convolve_2d_ssse3.c:range_check_value64 Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:range_check_value64 Unexecuted instantiation: reconinter_ssse3.c:range_check_value64 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:range_check_value64 Unexecuted instantiation: av1_convolve_scale_sse4.c:range_check_value64 Unexecuted instantiation: av1_txfm_sse4.c:range_check_value64 Unexecuted instantiation: cdef_block_sse4.c:range_check_value64 Unexecuted instantiation: filterintra_sse4.c:range_check_value64 Unexecuted instantiation: highbd_inv_txfm_sse4.c:range_check_value64 Unexecuted instantiation: intra_edge_sse4.c:range_check_value64 Unexecuted instantiation: reconinter_sse4.c:range_check_value64 Unexecuted instantiation: selfguided_sse4.c:range_check_value64 Unexecuted instantiation: warp_plane_sse4.c:range_check_value64 Unexecuted instantiation: highbd_convolve_2d_sse4.c:range_check_value64 Unexecuted instantiation: highbd_jnt_convolve_sse4.c:range_check_value64 Unexecuted instantiation: highbd_warp_plane_sse4.c:range_check_value64 Unexecuted instantiation: av1_inv_txfm_avx2.c:range_check_value64 Unexecuted instantiation: cdef_block_avx2.c:range_check_value64 Unexecuted instantiation: cfl_avx2.c:range_check_value64 Unexecuted instantiation: convolve_2d_avx2.c:range_check_value64 Unexecuted instantiation: convolve_avx2.c:range_check_value64 Unexecuted instantiation: highbd_inv_txfm_avx2.c:range_check_value64 Unexecuted instantiation: jnt_convolve_avx2.c:range_check_value64 Unexecuted instantiation: reconinter_avx2.c:range_check_value64 Unexecuted instantiation: resize_avx2.c:range_check_value64 Unexecuted instantiation: selfguided_avx2.c:range_check_value64 Unexecuted instantiation: warp_plane_avx2.c:range_check_value64 Unexecuted instantiation: wiener_convolve_avx2.c:range_check_value64 Unexecuted instantiation: highbd_convolve_2d_avx2.c:range_check_value64 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:range_check_value64 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:range_check_value64 Unexecuted instantiation: highbd_warp_affine_avx2.c:range_check_value64 Unexecuted instantiation: av1_inv_txfm1d.c:range_check_value64 |
117 | | |
118 | 0 | static inline int32_t round_shift(int64_t value, int bit) { |
119 | 0 | assert(bit >= 1); |
120 | 0 | return (int32_t)((value + (1ll << (bit - 1))) >> bit); |
121 | 0 | } Unexecuted instantiation: av1_dx_iface.c:round_shift Unexecuted instantiation: decodeframe.c:round_shift Unexecuted instantiation: decodemv.c:round_shift Unexecuted instantiation: decoder.c:round_shift Unexecuted instantiation: decodetxb.c:round_shift Unexecuted instantiation: detokenize.c:round_shift Unexecuted instantiation: obu.c:round_shift Unexecuted instantiation: av1_rtcd.c:round_shift Unexecuted instantiation: highbd_convolve_ssse3.c:round_shift Unexecuted instantiation: intrapred_sse4.c:round_shift Unexecuted instantiation: intrapred_avx2.c:round_shift Unexecuted instantiation: highbd_convolve_avx2.c:round_shift Unexecuted instantiation: alloccommon.c:round_shift Unexecuted instantiation: av1_inv_txfm2d.c:round_shift Unexecuted instantiation: av1_loopfilter.c:round_shift Unexecuted instantiation: av1_txfm.c:round_shift Unexecuted instantiation: blockd.c:round_shift Unexecuted instantiation: cdef.c:round_shift Unexecuted instantiation: cdef_block.c:round_shift Unexecuted instantiation: cfl.c:round_shift Unexecuted instantiation: convolve.c:round_shift Unexecuted instantiation: entropy.c:round_shift Unexecuted instantiation: entropymode.c:round_shift Unexecuted instantiation: entropymv.c:round_shift Unexecuted instantiation: idct.c:round_shift Unexecuted instantiation: mvref_common.c:round_shift Unexecuted instantiation: pred_common.c:round_shift Unexecuted instantiation: quant_common.c:round_shift Unexecuted instantiation: reconinter.c:round_shift Unexecuted instantiation: reconintra.c:round_shift Unexecuted instantiation: resize.c:round_shift Unexecuted instantiation: restoration.c:round_shift Unexecuted instantiation: scale.c:round_shift Unexecuted instantiation: scan.c:round_shift Unexecuted instantiation: thread_common.c:round_shift Unexecuted instantiation: tile_common.c:round_shift Unexecuted instantiation: txb_common.c:round_shift Unexecuted instantiation: warped_motion.c:round_shift Unexecuted instantiation: cfl_sse2.c:round_shift Unexecuted instantiation: convolve_2d_sse2.c:round_shift Unexecuted instantiation: convolve_sse2.c:round_shift Unexecuted instantiation: jnt_convolve_sse2.c:round_shift Unexecuted instantiation: resize_sse2.c:round_shift Unexecuted instantiation: wiener_convolve_sse2.c:round_shift Unexecuted instantiation: av1_inv_txfm_ssse3.c:round_shift Unexecuted instantiation: cfl_ssse3.c:round_shift Unexecuted instantiation: jnt_convolve_ssse3.c:round_shift Unexecuted instantiation: resize_ssse3.c:round_shift Unexecuted instantiation: highbd_convolve_2d_ssse3.c:round_shift Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:round_shift Unexecuted instantiation: reconinter_ssse3.c:round_shift Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:round_shift Unexecuted instantiation: av1_convolve_scale_sse4.c:round_shift Unexecuted instantiation: av1_txfm_sse4.c:round_shift Unexecuted instantiation: cdef_block_sse4.c:round_shift Unexecuted instantiation: filterintra_sse4.c:round_shift Unexecuted instantiation: highbd_inv_txfm_sse4.c:round_shift Unexecuted instantiation: intra_edge_sse4.c:round_shift Unexecuted instantiation: reconinter_sse4.c:round_shift Unexecuted instantiation: selfguided_sse4.c:round_shift Unexecuted instantiation: warp_plane_sse4.c:round_shift Unexecuted instantiation: highbd_convolve_2d_sse4.c:round_shift Unexecuted instantiation: highbd_jnt_convolve_sse4.c:round_shift Unexecuted instantiation: highbd_warp_plane_sse4.c:round_shift Unexecuted instantiation: av1_inv_txfm_avx2.c:round_shift Unexecuted instantiation: cdef_block_avx2.c:round_shift Unexecuted instantiation: cfl_avx2.c:round_shift Unexecuted instantiation: convolve_2d_avx2.c:round_shift Unexecuted instantiation: convolve_avx2.c:round_shift Unexecuted instantiation: highbd_inv_txfm_avx2.c:round_shift Unexecuted instantiation: jnt_convolve_avx2.c:round_shift Unexecuted instantiation: reconinter_avx2.c:round_shift Unexecuted instantiation: resize_avx2.c:round_shift Unexecuted instantiation: selfguided_avx2.c:round_shift Unexecuted instantiation: warp_plane_avx2.c:round_shift Unexecuted instantiation: wiener_convolve_avx2.c:round_shift Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_shift Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_shift Unexecuted instantiation: highbd_wiener_convolve_avx2.c:round_shift Unexecuted instantiation: highbd_warp_affine_avx2.c:round_shift Unexecuted instantiation: av1_inv_txfm1d.c:round_shift |
122 | | |
123 | | static inline int32_t half_btf(int32_t w0, int32_t in0, int32_t w1, int32_t in1, |
124 | 0 | int bit) { |
125 | 0 | int64_t result_64 = (int64_t)(w0 * in0) + (int64_t)(w1 * in1); |
126 | 0 | int64_t intermediate = result_64 + (1LL << (bit - 1)); |
127 | | // NOTE(rachelbarker): The value 'result_64' may not necessarily fit |
128 | | // into 32 bits. However, the result of this function is nominally |
129 | | // ROUND_POWER_OF_TWO_64(result_64, bit) |
130 | | // and that is required to fit into stage_range[stage] many bits |
131 | | // (checked by range_check_buf()). |
132 | | // |
133 | | // Here we've unpacked that rounding operation, and it can be shown |
134 | | // that the value of 'intermediate' here *does* fit into 32 bits |
135 | | // for any conformant bitstream. |
136 | | // The upshot is that, if you do all this calculation using |
137 | | // wrapping 32-bit arithmetic instead of (non-wrapping) 64-bit arithmetic, |
138 | | // then you'll still get the correct result. |
139 | | // To provide a check on this logic, we assert that 'intermediate' |
140 | | // would fit into an int32 if range checking is enabled. |
141 | | #if CONFIG_COEFFICIENT_RANGE_CHECKING |
142 | | assert(intermediate >= INT32_MIN && intermediate <= INT32_MAX); |
143 | | #endif |
144 | 0 | return (int32_t)(intermediate >> bit); |
145 | 0 | } Unexecuted instantiation: av1_dx_iface.c:half_btf Unexecuted instantiation: decodeframe.c:half_btf Unexecuted instantiation: decodemv.c:half_btf Unexecuted instantiation: decoder.c:half_btf Unexecuted instantiation: decodetxb.c:half_btf Unexecuted instantiation: detokenize.c:half_btf Unexecuted instantiation: obu.c:half_btf Unexecuted instantiation: av1_rtcd.c:half_btf Unexecuted instantiation: highbd_convolve_ssse3.c:half_btf Unexecuted instantiation: intrapred_sse4.c:half_btf Unexecuted instantiation: intrapred_avx2.c:half_btf Unexecuted instantiation: highbd_convolve_avx2.c:half_btf Unexecuted instantiation: alloccommon.c:half_btf Unexecuted instantiation: av1_inv_txfm2d.c:half_btf Unexecuted instantiation: av1_loopfilter.c:half_btf Unexecuted instantiation: av1_txfm.c:half_btf Unexecuted instantiation: blockd.c:half_btf Unexecuted instantiation: cdef.c:half_btf Unexecuted instantiation: cdef_block.c:half_btf Unexecuted instantiation: cfl.c:half_btf Unexecuted instantiation: convolve.c:half_btf Unexecuted instantiation: entropy.c:half_btf Unexecuted instantiation: entropymode.c:half_btf Unexecuted instantiation: entropymv.c:half_btf Unexecuted instantiation: idct.c:half_btf Unexecuted instantiation: mvref_common.c:half_btf Unexecuted instantiation: pred_common.c:half_btf Unexecuted instantiation: quant_common.c:half_btf Unexecuted instantiation: reconinter.c:half_btf Unexecuted instantiation: reconintra.c:half_btf Unexecuted instantiation: resize.c:half_btf Unexecuted instantiation: restoration.c:half_btf Unexecuted instantiation: scale.c:half_btf Unexecuted instantiation: scan.c:half_btf Unexecuted instantiation: thread_common.c:half_btf Unexecuted instantiation: tile_common.c:half_btf Unexecuted instantiation: txb_common.c:half_btf Unexecuted instantiation: warped_motion.c:half_btf Unexecuted instantiation: cfl_sse2.c:half_btf Unexecuted instantiation: convolve_2d_sse2.c:half_btf Unexecuted instantiation: convolve_sse2.c:half_btf Unexecuted instantiation: jnt_convolve_sse2.c:half_btf Unexecuted instantiation: resize_sse2.c:half_btf Unexecuted instantiation: wiener_convolve_sse2.c:half_btf Unexecuted instantiation: av1_inv_txfm_ssse3.c:half_btf Unexecuted instantiation: cfl_ssse3.c:half_btf Unexecuted instantiation: jnt_convolve_ssse3.c:half_btf Unexecuted instantiation: resize_ssse3.c:half_btf Unexecuted instantiation: highbd_convolve_2d_ssse3.c:half_btf Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:half_btf Unexecuted instantiation: reconinter_ssse3.c:half_btf Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:half_btf Unexecuted instantiation: av1_convolve_scale_sse4.c:half_btf Unexecuted instantiation: av1_txfm_sse4.c:half_btf Unexecuted instantiation: cdef_block_sse4.c:half_btf Unexecuted instantiation: filterintra_sse4.c:half_btf Unexecuted instantiation: highbd_inv_txfm_sse4.c:half_btf Unexecuted instantiation: intra_edge_sse4.c:half_btf Unexecuted instantiation: reconinter_sse4.c:half_btf Unexecuted instantiation: selfguided_sse4.c:half_btf Unexecuted instantiation: warp_plane_sse4.c:half_btf Unexecuted instantiation: highbd_convolve_2d_sse4.c:half_btf Unexecuted instantiation: highbd_jnt_convolve_sse4.c:half_btf Unexecuted instantiation: highbd_warp_plane_sse4.c:half_btf Unexecuted instantiation: av1_inv_txfm_avx2.c:half_btf Unexecuted instantiation: cdef_block_avx2.c:half_btf Unexecuted instantiation: cfl_avx2.c:half_btf Unexecuted instantiation: convolve_2d_avx2.c:half_btf Unexecuted instantiation: convolve_avx2.c:half_btf Unexecuted instantiation: highbd_inv_txfm_avx2.c:half_btf Unexecuted instantiation: jnt_convolve_avx2.c:half_btf Unexecuted instantiation: reconinter_avx2.c:half_btf Unexecuted instantiation: resize_avx2.c:half_btf Unexecuted instantiation: selfguided_avx2.c:half_btf Unexecuted instantiation: warp_plane_avx2.c:half_btf Unexecuted instantiation: wiener_convolve_avx2.c:half_btf Unexecuted instantiation: highbd_convolve_2d_avx2.c:half_btf Unexecuted instantiation: highbd_jnt_convolve_avx2.c:half_btf Unexecuted instantiation: highbd_wiener_convolve_avx2.c:half_btf Unexecuted instantiation: highbd_warp_affine_avx2.c:half_btf Unexecuted instantiation: av1_inv_txfm1d.c:half_btf |
146 | | |
147 | | static inline uint16_t highbd_clip_pixel_add(uint16_t dest, tran_high_t trans, |
148 | 10.2M | int bd) { |
149 | 10.2M | return clip_pixel_highbd(dest + (int)trans, bd); |
150 | 10.2M | } Unexecuted instantiation: av1_dx_iface.c:highbd_clip_pixel_add Unexecuted instantiation: decodeframe.c:highbd_clip_pixel_add Unexecuted instantiation: decodemv.c:highbd_clip_pixel_add Unexecuted instantiation: decoder.c:highbd_clip_pixel_add Unexecuted instantiation: decodetxb.c:highbd_clip_pixel_add Unexecuted instantiation: detokenize.c:highbd_clip_pixel_add Unexecuted instantiation: obu.c:highbd_clip_pixel_add Unexecuted instantiation: av1_rtcd.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_convolve_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: intrapred_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: intrapred_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: alloccommon.c:highbd_clip_pixel_add av1_inv_txfm2d.c:highbd_clip_pixel_add Line | Count | Source | 148 | 10.2M | int bd) { | 149 | 10.2M | return clip_pixel_highbd(dest + (int)trans, bd); | 150 | 10.2M | } |
Unexecuted instantiation: av1_loopfilter.c:highbd_clip_pixel_add Unexecuted instantiation: av1_txfm.c:highbd_clip_pixel_add Unexecuted instantiation: blockd.c:highbd_clip_pixel_add Unexecuted instantiation: cdef.c:highbd_clip_pixel_add Unexecuted instantiation: cdef_block.c:highbd_clip_pixel_add Unexecuted instantiation: cfl.c:highbd_clip_pixel_add Unexecuted instantiation: convolve.c:highbd_clip_pixel_add Unexecuted instantiation: entropy.c:highbd_clip_pixel_add Unexecuted instantiation: entropymode.c:highbd_clip_pixel_add Unexecuted instantiation: entropymv.c:highbd_clip_pixel_add Unexecuted instantiation: idct.c:highbd_clip_pixel_add Unexecuted instantiation: mvref_common.c:highbd_clip_pixel_add Unexecuted instantiation: pred_common.c:highbd_clip_pixel_add Unexecuted instantiation: quant_common.c:highbd_clip_pixel_add Unexecuted instantiation: reconinter.c:highbd_clip_pixel_add Unexecuted instantiation: reconintra.c:highbd_clip_pixel_add Unexecuted instantiation: resize.c:highbd_clip_pixel_add Unexecuted instantiation: restoration.c:highbd_clip_pixel_add Unexecuted instantiation: scale.c:highbd_clip_pixel_add Unexecuted instantiation: scan.c:highbd_clip_pixel_add Unexecuted instantiation: thread_common.c:highbd_clip_pixel_add Unexecuted instantiation: tile_common.c:highbd_clip_pixel_add Unexecuted instantiation: txb_common.c:highbd_clip_pixel_add Unexecuted instantiation: warped_motion.c:highbd_clip_pixel_add Unexecuted instantiation: cfl_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: convolve_2d_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: convolve_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: jnt_convolve_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: resize_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: wiener_convolve_sse2.c:highbd_clip_pixel_add Unexecuted instantiation: av1_inv_txfm_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: cfl_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: jnt_convolve_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: resize_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_convolve_2d_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: reconinter_ssse3.c:highbd_clip_pixel_add Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: av1_convolve_scale_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: av1_txfm_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: cdef_block_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: filterintra_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_inv_txfm_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: intra_edge_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: reconinter_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: selfguided_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: warp_plane_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_convolve_2d_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_jnt_convolve_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_warp_plane_sse4.c:highbd_clip_pixel_add Unexecuted instantiation: av1_inv_txfm_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: cdef_block_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: cfl_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: convolve_2d_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_inv_txfm_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: jnt_convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: reconinter_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: resize_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: selfguided_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: warp_plane_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: wiener_convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_convolve_2d_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_jnt_convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_wiener_convolve_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: highbd_warp_affine_avx2.c:highbd_clip_pixel_add Unexecuted instantiation: av1_inv_txfm1d.c:highbd_clip_pixel_add |
151 | | |
152 | | typedef void (*TxfmFunc)(const int32_t *input, int32_t *output, int8_t cos_bit, |
153 | | const int8_t *stage_range); |
154 | | |
155 | | typedef void (*FwdTxfm2dFunc)(const int16_t *input, int32_t *output, int stride, |
156 | | TX_TYPE tx_type, int bd); |
157 | | |
158 | | enum { |
159 | | TXFM_TYPE_DCT4, |
160 | | TXFM_TYPE_DCT8, |
161 | | TXFM_TYPE_DCT16, |
162 | | TXFM_TYPE_DCT32, |
163 | | TXFM_TYPE_DCT64, |
164 | | TXFM_TYPE_ADST4, |
165 | | TXFM_TYPE_ADST8, |
166 | | TXFM_TYPE_ADST16, |
167 | | TXFM_TYPE_IDENTITY4, |
168 | | TXFM_TYPE_IDENTITY8, |
169 | | TXFM_TYPE_IDENTITY16, |
170 | | TXFM_TYPE_IDENTITY32, |
171 | | TXFM_TYPES, |
172 | | TXFM_TYPE_INVALID, |
173 | | } UENUM1BYTE(TXFM_TYPE); |
174 | | |
175 | | typedef struct TXFM_2D_FLIP_CFG { |
176 | | TX_SIZE tx_size; |
177 | | int ud_flip; // flip upside down |
178 | | int lr_flip; // flip left to right |
179 | | const int8_t *shift; |
180 | | int8_t cos_bit_col; |
181 | | int8_t cos_bit_row; |
182 | | int8_t stage_range_col[MAX_TXFM_STAGE_NUM]; |
183 | | int8_t stage_range_row[MAX_TXFM_STAGE_NUM]; |
184 | | TXFM_TYPE txfm_type_col; |
185 | | TXFM_TYPE txfm_type_row; |
186 | | int stage_num_col; |
187 | | int stage_num_row; |
188 | | } TXFM_2D_FLIP_CFG; |
189 | | |
190 | 9.86M | static inline void get_flip_cfg(TX_TYPE tx_type, int *ud_flip, int *lr_flip) { |
191 | 9.86M | switch (tx_type) { |
192 | 4.84M | case DCT_DCT: |
193 | 5.64M | case ADST_DCT: |
194 | 6.84M | case DCT_ADST: |
195 | 7.79M | case ADST_ADST: |
196 | 7.79M | *ud_flip = 0; |
197 | 7.79M | *lr_flip = 0; |
198 | 7.79M | break; |
199 | 449k | case IDTX: |
200 | 591k | case V_DCT: |
201 | 968k | case H_DCT: |
202 | 1.03M | case V_ADST: |
203 | 1.13M | case H_ADST: |
204 | 1.13M | *ud_flip = 0; |
205 | 1.13M | *lr_flip = 0; |
206 | 1.13M | break; |
207 | 129k | case FLIPADST_DCT: |
208 | 277k | case FLIPADST_ADST: |
209 | 322k | case V_FLIPADST: |
210 | 322k | *ud_flip = 1; |
211 | 322k | *lr_flip = 0; |
212 | 322k | break; |
213 | 312k | case DCT_FLIPADST: |
214 | 423k | case ADST_FLIPADST: |
215 | 508k | case H_FLIPADST: |
216 | 508k | *ud_flip = 0; |
217 | 508k | *lr_flip = 1; |
218 | 508k | break; |
219 | 105k | case FLIPADST_FLIPADST: |
220 | 105k | *ud_flip = 1; |
221 | 105k | *lr_flip = 1; |
222 | 105k | break; |
223 | 0 | default: |
224 | 0 | *ud_flip = 0; |
225 | 0 | *lr_flip = 0; |
226 | 0 | assert(0); |
227 | 9.86M | } |
228 | 9.86M | } Unexecuted instantiation: av1_dx_iface.c:get_flip_cfg Unexecuted instantiation: decodeframe.c:get_flip_cfg Unexecuted instantiation: decodemv.c:get_flip_cfg Unexecuted instantiation: decoder.c:get_flip_cfg Unexecuted instantiation: decodetxb.c:get_flip_cfg Unexecuted instantiation: detokenize.c:get_flip_cfg Unexecuted instantiation: obu.c:get_flip_cfg Unexecuted instantiation: av1_rtcd.c:get_flip_cfg Unexecuted instantiation: highbd_convolve_ssse3.c:get_flip_cfg Unexecuted instantiation: intrapred_sse4.c:get_flip_cfg Unexecuted instantiation: intrapred_avx2.c:get_flip_cfg Unexecuted instantiation: highbd_convolve_avx2.c:get_flip_cfg Unexecuted instantiation: alloccommon.c:get_flip_cfg Unexecuted instantiation: av1_inv_txfm2d.c:get_flip_cfg Unexecuted instantiation: av1_loopfilter.c:get_flip_cfg Unexecuted instantiation: av1_txfm.c:get_flip_cfg Unexecuted instantiation: blockd.c:get_flip_cfg Unexecuted instantiation: cdef.c:get_flip_cfg Unexecuted instantiation: cdef_block.c:get_flip_cfg Unexecuted instantiation: cfl.c:get_flip_cfg Unexecuted instantiation: convolve.c:get_flip_cfg Unexecuted instantiation: entropy.c:get_flip_cfg Unexecuted instantiation: entropymode.c:get_flip_cfg Unexecuted instantiation: entropymv.c:get_flip_cfg Unexecuted instantiation: idct.c:get_flip_cfg Unexecuted instantiation: mvref_common.c:get_flip_cfg Unexecuted instantiation: pred_common.c:get_flip_cfg Unexecuted instantiation: quant_common.c:get_flip_cfg Unexecuted instantiation: reconinter.c:get_flip_cfg Unexecuted instantiation: reconintra.c:get_flip_cfg Unexecuted instantiation: resize.c:get_flip_cfg Unexecuted instantiation: restoration.c:get_flip_cfg Unexecuted instantiation: scale.c:get_flip_cfg Unexecuted instantiation: scan.c:get_flip_cfg Unexecuted instantiation: thread_common.c:get_flip_cfg Unexecuted instantiation: tile_common.c:get_flip_cfg Unexecuted instantiation: txb_common.c:get_flip_cfg Unexecuted instantiation: warped_motion.c:get_flip_cfg Unexecuted instantiation: cfl_sse2.c:get_flip_cfg Unexecuted instantiation: convolve_2d_sse2.c:get_flip_cfg Unexecuted instantiation: convolve_sse2.c:get_flip_cfg Unexecuted instantiation: jnt_convolve_sse2.c:get_flip_cfg Unexecuted instantiation: resize_sse2.c:get_flip_cfg Unexecuted instantiation: wiener_convolve_sse2.c:get_flip_cfg av1_inv_txfm_ssse3.c:get_flip_cfg Line | Count | Source | 190 | 2.53M | static inline void get_flip_cfg(TX_TYPE tx_type, int *ud_flip, int *lr_flip) { | 191 | 2.53M | switch (tx_type) { | 192 | 1.03M | case DCT_DCT: | 193 | 1.21M | case ADST_DCT: | 194 | 1.49M | case DCT_ADST: | 195 | 1.78M | case ADST_ADST: | 196 | 1.78M | *ud_flip = 0; | 197 | 1.78M | *lr_flip = 0; | 198 | 1.78M | break; | 199 | 213k | case IDTX: | 200 | 281k | case V_DCT: | 201 | 424k | case H_DCT: | 202 | 448k | case V_ADST: | 203 | 493k | case H_ADST: | 204 | 493k | *ud_flip = 0; | 205 | 493k | *lr_flip = 0; | 206 | 493k | break; | 207 | 42.1k | case FLIPADST_DCT: | 208 | 97.0k | case FLIPADST_ADST: | 209 | 114k | case V_FLIPADST: | 210 | 114k | *ud_flip = 1; | 211 | 114k | *lr_flip = 0; | 212 | 114k | break; | 213 | 46.9k | case DCT_FLIPADST: | 214 | 92.5k | case ADST_FLIPADST: | 215 | 121k | case H_FLIPADST: | 216 | 121k | *ud_flip = 0; | 217 | 121k | *lr_flip = 1; | 218 | 121k | break; | 219 | 20.7k | case FLIPADST_FLIPADST: | 220 | 20.7k | *ud_flip = 1; | 221 | 20.7k | *lr_flip = 1; | 222 | 20.7k | break; | 223 | 0 | default: | 224 | 0 | *ud_flip = 0; | 225 | 0 | *lr_flip = 0; | 226 | | assert(0); | 227 | 2.53M | } | 228 | 2.53M | } |
Unexecuted instantiation: cfl_ssse3.c:get_flip_cfg Unexecuted instantiation: jnt_convolve_ssse3.c:get_flip_cfg Unexecuted instantiation: resize_ssse3.c:get_flip_cfg Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_flip_cfg Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_flip_cfg Unexecuted instantiation: reconinter_ssse3.c:get_flip_cfg Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_flip_cfg Unexecuted instantiation: av1_convolve_scale_sse4.c:get_flip_cfg Unexecuted instantiation: av1_txfm_sse4.c:get_flip_cfg Unexecuted instantiation: cdef_block_sse4.c:get_flip_cfg Unexecuted instantiation: filterintra_sse4.c:get_flip_cfg highbd_inv_txfm_sse4.c:get_flip_cfg Line | Count | Source | 190 | 2.29M | static inline void get_flip_cfg(TX_TYPE tx_type, int *ud_flip, int *lr_flip) { | 191 | 2.29M | switch (tx_type) { | 192 | 590k | case DCT_DCT: | 193 | 802k | case ADST_DCT: | 194 | 1.06M | case DCT_ADST: | 195 | 1.29M | case ADST_ADST: | 196 | 1.29M | *ud_flip = 0; | 197 | 1.29M | *lr_flip = 0; | 198 | 1.29M | break; | 199 | 236k | case IDTX: | 200 | 305k | case V_DCT: | 201 | 525k | case H_DCT: | 202 | 565k | case V_ADST: | 203 | 625k | case H_ADST: | 204 | 625k | *ud_flip = 0; | 205 | 625k | *lr_flip = 0; | 206 | 625k | break; | 207 | 21.9k | case FLIPADST_DCT: | 208 | 56.7k | case FLIPADST_ADST: | 209 | 84.3k | case V_FLIPADST: | 210 | 84.3k | *ud_flip = 1; | 211 | 84.3k | *lr_flip = 0; | 212 | 84.3k | break; | 213 | 163k | case DCT_FLIPADST: | 214 | 185k | case ADST_FLIPADST: | 215 | 241k | case H_FLIPADST: | 216 | 241k | *ud_flip = 0; | 217 | 241k | *lr_flip = 1; | 218 | 241k | break; | 219 | 53.6k | case FLIPADST_FLIPADST: | 220 | 53.6k | *ud_flip = 1; | 221 | 53.6k | *lr_flip = 1; | 222 | 53.6k | break; | 223 | 0 | default: | 224 | 0 | *ud_flip = 0; | 225 | 0 | *lr_flip = 0; | 226 | | assert(0); | 227 | 2.29M | } | 228 | 2.29M | } |
Unexecuted instantiation: intra_edge_sse4.c:get_flip_cfg Unexecuted instantiation: reconinter_sse4.c:get_flip_cfg Unexecuted instantiation: selfguided_sse4.c:get_flip_cfg Unexecuted instantiation: warp_plane_sse4.c:get_flip_cfg Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_flip_cfg Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_flip_cfg Unexecuted instantiation: highbd_warp_plane_sse4.c:get_flip_cfg av1_inv_txfm_avx2.c:get_flip_cfg Line | Count | Source | 190 | 1.54M | static inline void get_flip_cfg(TX_TYPE tx_type, int *ud_flip, int *lr_flip) { | 191 | 1.54M | switch (tx_type) { | 192 | 969k | case DCT_DCT: | 193 | 1.09M | case ADST_DCT: | 194 | 1.30M | case DCT_ADST: | 195 | 1.44M | case ADST_ADST: | 196 | 1.44M | *ud_flip = 0; | 197 | 1.44M | *lr_flip = 0; | 198 | 1.44M | break; | 199 | 0 | case IDTX: | 200 | 3.82k | case V_DCT: | 201 | 17.7k | case H_DCT: | 202 | 17.7k | case V_ADST: | 203 | 17.7k | case H_ADST: | 204 | 17.7k | *ud_flip = 0; | 205 | 17.7k | *lr_flip = 0; | 206 | 17.7k | break; | 207 | 22.3k | case FLIPADST_DCT: | 208 | 43.8k | case FLIPADST_ADST: | 209 | 43.8k | case V_FLIPADST: | 210 | 43.8k | *ud_flip = 1; | 211 | 43.8k | *lr_flip = 0; | 212 | 43.8k | break; | 213 | 18.0k | case DCT_FLIPADST: | 214 | 35.6k | case ADST_FLIPADST: | 215 | 35.6k | case H_FLIPADST: | 216 | 35.6k | *ud_flip = 0; | 217 | 35.6k | *lr_flip = 1; | 218 | 35.6k | break; | 219 | 6.72k | case FLIPADST_FLIPADST: | 220 | 6.72k | *ud_flip = 1; | 221 | 6.72k | *lr_flip = 1; | 222 | 6.72k | break; | 223 | 0 | default: | 224 | 0 | *ud_flip = 0; | 225 | 0 | *lr_flip = 0; | 226 | | assert(0); | 227 | 1.54M | } | 228 | 1.54M | } |
Unexecuted instantiation: cdef_block_avx2.c:get_flip_cfg Unexecuted instantiation: cfl_avx2.c:get_flip_cfg Unexecuted instantiation: convolve_2d_avx2.c:get_flip_cfg Unexecuted instantiation: convolve_avx2.c:get_flip_cfg highbd_inv_txfm_avx2.c:get_flip_cfg Line | Count | Source | 190 | 3.48M | static inline void get_flip_cfg(TX_TYPE tx_type, int *ud_flip, int *lr_flip) { | 191 | 3.48M | switch (tx_type) { | 192 | 2.24M | case DCT_DCT: | 193 | 2.53M | case ADST_DCT: | 194 | 2.98M | case DCT_ADST: | 195 | 3.27M | case ADST_ADST: | 196 | 3.27M | *ud_flip = 0; | 197 | 3.27M | *lr_flip = 0; | 198 | 3.27M | break; | 199 | 0 | case IDTX: | 200 | 0 | case V_DCT: | 201 | 0 | case H_DCT: | 202 | 0 | case V_ADST: | 203 | 0 | case H_ADST: | 204 | 0 | *ud_flip = 0; | 205 | 0 | *lr_flip = 0; | 206 | 0 | break; | 207 | 43.0k | case FLIPADST_DCT: | 208 | 79.6k | case FLIPADST_ADST: | 209 | 79.6k | case V_FLIPADST: | 210 | 79.6k | *ud_flip = 1; | 211 | 79.6k | *lr_flip = 0; | 212 | 79.6k | break; | 213 | 83.4k | case DCT_FLIPADST: | 214 | 109k | case ADST_FLIPADST: | 215 | 109k | case H_FLIPADST: | 216 | 109k | *ud_flip = 0; | 217 | 109k | *lr_flip = 1; | 218 | 109k | break; | 219 | 23.9k | case FLIPADST_FLIPADST: | 220 | 23.9k | *ud_flip = 1; | 221 | 23.9k | *lr_flip = 1; | 222 | 23.9k | break; | 223 | 0 | default: | 224 | 0 | *ud_flip = 0; | 225 | 0 | *lr_flip = 0; | 226 | | assert(0); | 227 | 3.48M | } | 228 | 3.48M | } |
Unexecuted instantiation: jnt_convolve_avx2.c:get_flip_cfg Unexecuted instantiation: reconinter_avx2.c:get_flip_cfg Unexecuted instantiation: resize_avx2.c:get_flip_cfg Unexecuted instantiation: selfguided_avx2.c:get_flip_cfg Unexecuted instantiation: warp_plane_avx2.c:get_flip_cfg Unexecuted instantiation: wiener_convolve_avx2.c:get_flip_cfg Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_flip_cfg Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_flip_cfg Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_flip_cfg Unexecuted instantiation: highbd_warp_affine_avx2.c:get_flip_cfg Unexecuted instantiation: av1_inv_txfm1d.c:get_flip_cfg |
229 | | |
230 | 0 | static inline void set_flip_cfg(TX_TYPE tx_type, TXFM_2D_FLIP_CFG *cfg) { |
231 | 0 | get_flip_cfg(tx_type, &cfg->ud_flip, &cfg->lr_flip); |
232 | 0 | } Unexecuted instantiation: av1_dx_iface.c:set_flip_cfg Unexecuted instantiation: decodeframe.c:set_flip_cfg Unexecuted instantiation: decodemv.c:set_flip_cfg Unexecuted instantiation: decoder.c:set_flip_cfg Unexecuted instantiation: decodetxb.c:set_flip_cfg Unexecuted instantiation: detokenize.c:set_flip_cfg Unexecuted instantiation: obu.c:set_flip_cfg Unexecuted instantiation: av1_rtcd.c:set_flip_cfg Unexecuted instantiation: highbd_convolve_ssse3.c:set_flip_cfg Unexecuted instantiation: intrapred_sse4.c:set_flip_cfg Unexecuted instantiation: intrapred_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_convolve_avx2.c:set_flip_cfg Unexecuted instantiation: alloccommon.c:set_flip_cfg Unexecuted instantiation: av1_inv_txfm2d.c:set_flip_cfg Unexecuted instantiation: av1_loopfilter.c:set_flip_cfg Unexecuted instantiation: av1_txfm.c:set_flip_cfg Unexecuted instantiation: blockd.c:set_flip_cfg Unexecuted instantiation: cdef.c:set_flip_cfg Unexecuted instantiation: cdef_block.c:set_flip_cfg Unexecuted instantiation: cfl.c:set_flip_cfg Unexecuted instantiation: convolve.c:set_flip_cfg Unexecuted instantiation: entropy.c:set_flip_cfg Unexecuted instantiation: entropymode.c:set_flip_cfg Unexecuted instantiation: entropymv.c:set_flip_cfg Unexecuted instantiation: idct.c:set_flip_cfg Unexecuted instantiation: mvref_common.c:set_flip_cfg Unexecuted instantiation: pred_common.c:set_flip_cfg Unexecuted instantiation: quant_common.c:set_flip_cfg Unexecuted instantiation: reconinter.c:set_flip_cfg Unexecuted instantiation: reconintra.c:set_flip_cfg Unexecuted instantiation: resize.c:set_flip_cfg Unexecuted instantiation: restoration.c:set_flip_cfg Unexecuted instantiation: scale.c:set_flip_cfg Unexecuted instantiation: scan.c:set_flip_cfg Unexecuted instantiation: thread_common.c:set_flip_cfg Unexecuted instantiation: tile_common.c:set_flip_cfg Unexecuted instantiation: txb_common.c:set_flip_cfg Unexecuted instantiation: warped_motion.c:set_flip_cfg Unexecuted instantiation: cfl_sse2.c:set_flip_cfg Unexecuted instantiation: convolve_2d_sse2.c:set_flip_cfg Unexecuted instantiation: convolve_sse2.c:set_flip_cfg Unexecuted instantiation: jnt_convolve_sse2.c:set_flip_cfg Unexecuted instantiation: resize_sse2.c:set_flip_cfg Unexecuted instantiation: wiener_convolve_sse2.c:set_flip_cfg Unexecuted instantiation: av1_inv_txfm_ssse3.c:set_flip_cfg Unexecuted instantiation: cfl_ssse3.c:set_flip_cfg Unexecuted instantiation: jnt_convolve_ssse3.c:set_flip_cfg Unexecuted instantiation: resize_ssse3.c:set_flip_cfg Unexecuted instantiation: highbd_convolve_2d_ssse3.c:set_flip_cfg Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:set_flip_cfg Unexecuted instantiation: reconinter_ssse3.c:set_flip_cfg Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_flip_cfg Unexecuted instantiation: av1_convolve_scale_sse4.c:set_flip_cfg Unexecuted instantiation: av1_txfm_sse4.c:set_flip_cfg Unexecuted instantiation: cdef_block_sse4.c:set_flip_cfg Unexecuted instantiation: filterintra_sse4.c:set_flip_cfg Unexecuted instantiation: highbd_inv_txfm_sse4.c:set_flip_cfg Unexecuted instantiation: intra_edge_sse4.c:set_flip_cfg Unexecuted instantiation: reconinter_sse4.c:set_flip_cfg Unexecuted instantiation: selfguided_sse4.c:set_flip_cfg Unexecuted instantiation: warp_plane_sse4.c:set_flip_cfg Unexecuted instantiation: highbd_convolve_2d_sse4.c:set_flip_cfg Unexecuted instantiation: highbd_jnt_convolve_sse4.c:set_flip_cfg Unexecuted instantiation: highbd_warp_plane_sse4.c:set_flip_cfg Unexecuted instantiation: av1_inv_txfm_avx2.c:set_flip_cfg Unexecuted instantiation: cdef_block_avx2.c:set_flip_cfg Unexecuted instantiation: cfl_avx2.c:set_flip_cfg Unexecuted instantiation: convolve_2d_avx2.c:set_flip_cfg Unexecuted instantiation: convolve_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_inv_txfm_avx2.c:set_flip_cfg Unexecuted instantiation: jnt_convolve_avx2.c:set_flip_cfg Unexecuted instantiation: reconinter_avx2.c:set_flip_cfg Unexecuted instantiation: resize_avx2.c:set_flip_cfg Unexecuted instantiation: selfguided_avx2.c:set_flip_cfg Unexecuted instantiation: warp_plane_avx2.c:set_flip_cfg Unexecuted instantiation: wiener_convolve_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_convolve_2d_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_jnt_convolve_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_wiener_convolve_avx2.c:set_flip_cfg Unexecuted instantiation: highbd_warp_affine_avx2.c:set_flip_cfg Unexecuted instantiation: av1_inv_txfm1d.c:set_flip_cfg |
233 | | |
234 | | // Utility function that returns the log of the ratio of the col and row |
235 | | // sizes. |
236 | 5.87M | static inline int get_rect_tx_log_ratio(int col, int row) { |
237 | 5.87M | if (col == row) return 0; |
238 | 2.79M | if (col > row) { |
239 | 2.08M | if (col == row * 2) return 1; |
240 | 974k | if (col == row * 4) return 2; |
241 | 18.4E | assert(0 && "Unsupported transform size"); |
242 | 18.4E | } else { |
243 | 711k | if (row == col * 2) return -1; |
244 | 165k | if (row == col * 4) return -2; |
245 | 18.4E | assert(0 && "Unsupported transform size"); |
246 | 18.4E | } |
247 | 0 | return 0; // Invalid |
248 | 2.79M | } Unexecuted instantiation: av1_dx_iface.c:get_rect_tx_log_ratio Unexecuted instantiation: decodeframe.c:get_rect_tx_log_ratio Unexecuted instantiation: decodemv.c:get_rect_tx_log_ratio Unexecuted instantiation: decoder.c:get_rect_tx_log_ratio Unexecuted instantiation: decodetxb.c:get_rect_tx_log_ratio Unexecuted instantiation: detokenize.c:get_rect_tx_log_ratio Unexecuted instantiation: obu.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_rtcd.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_convolve_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: intrapred_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: intrapred_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_convolve_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: alloccommon.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_inv_txfm2d.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_loopfilter.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_txfm.c:get_rect_tx_log_ratio Unexecuted instantiation: blockd.c:get_rect_tx_log_ratio Unexecuted instantiation: cdef.c:get_rect_tx_log_ratio Unexecuted instantiation: cdef_block.c:get_rect_tx_log_ratio Unexecuted instantiation: cfl.c:get_rect_tx_log_ratio Unexecuted instantiation: convolve.c:get_rect_tx_log_ratio Unexecuted instantiation: entropy.c:get_rect_tx_log_ratio Unexecuted instantiation: entropymode.c:get_rect_tx_log_ratio Unexecuted instantiation: entropymv.c:get_rect_tx_log_ratio Unexecuted instantiation: idct.c:get_rect_tx_log_ratio Unexecuted instantiation: mvref_common.c:get_rect_tx_log_ratio Unexecuted instantiation: pred_common.c:get_rect_tx_log_ratio Unexecuted instantiation: quant_common.c:get_rect_tx_log_ratio Unexecuted instantiation: reconinter.c:get_rect_tx_log_ratio Unexecuted instantiation: reconintra.c:get_rect_tx_log_ratio Unexecuted instantiation: resize.c:get_rect_tx_log_ratio Unexecuted instantiation: restoration.c:get_rect_tx_log_ratio Unexecuted instantiation: scale.c:get_rect_tx_log_ratio Unexecuted instantiation: scan.c:get_rect_tx_log_ratio Unexecuted instantiation: thread_common.c:get_rect_tx_log_ratio Unexecuted instantiation: tile_common.c:get_rect_tx_log_ratio Unexecuted instantiation: txb_common.c:get_rect_tx_log_ratio Unexecuted instantiation: warped_motion.c:get_rect_tx_log_ratio Unexecuted instantiation: cfl_sse2.c:get_rect_tx_log_ratio Unexecuted instantiation: convolve_2d_sse2.c:get_rect_tx_log_ratio Unexecuted instantiation: convolve_sse2.c:get_rect_tx_log_ratio Unexecuted instantiation: jnt_convolve_sse2.c:get_rect_tx_log_ratio Unexecuted instantiation: resize_sse2.c:get_rect_tx_log_ratio Unexecuted instantiation: wiener_convolve_sse2.c:get_rect_tx_log_ratio av1_inv_txfm_ssse3.c:get_rect_tx_log_ratio Line | Count | Source | 236 | 942k | static inline int get_rect_tx_log_ratio(int col, int row) { | 237 | 942k | if (col == row) return 0; | 238 | 823k | if (col > row) { | 239 | 591k | if (col == row * 2) return 1; | 240 | 260k | if (col == row * 4) return 2; | 241 | 18.4E | assert(0 && "Unsupported transform size"); | 242 | 18.4E | } else { | 243 | 232k | if (row == col * 2) return -1; | 244 | 72.8k | if (row == col * 4) return -2; | 245 | 18.4E | assert(0 && "Unsupported transform size"); | 246 | 18.4E | } | 247 | 0 | return 0; // Invalid | 248 | 823k | } |
Unexecuted instantiation: cfl_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: jnt_convolve_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: resize_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: reconinter_ssse3.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_convolve_scale_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_txfm_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: cdef_block_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: filterintra_sse4.c:get_rect_tx_log_ratio highbd_inv_txfm_sse4.c:get_rect_tx_log_ratio Line | Count | Source | 236 | 410k | static inline int get_rect_tx_log_ratio(int col, int row) { | 237 | 410k | if (col == row) return 0; | 238 | 159k | if (col > row) { | 239 | 108k | if (col == row * 2) return 1; | 240 | 7.43k | if (col == row * 4) return 2; | 241 | 7.43k | assert(0 && "Unsupported transform size"); | 242 | 51.7k | } else { | 243 | 51.7k | if (row == col * 2) return -1; | 244 | 6.22k | if (row == col * 4) return -2; | 245 | 18.4E | assert(0 && "Unsupported transform size"); | 246 | 18.4E | } | 247 | 0 | return 0; // Invalid | 248 | 159k | } |
Unexecuted instantiation: intra_edge_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: reconinter_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: selfguided_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: warp_plane_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_warp_plane_sse4.c:get_rect_tx_log_ratio av1_inv_txfm_avx2.c:get_rect_tx_log_ratio Line | Count | Source | 236 | 1.03M | static inline int get_rect_tx_log_ratio(int col, int row) { | 237 | 1.03M | if (col == row) return 0; | 238 | 279k | if (col > row) { | 239 | 211k | if (col == row * 2) return 1; | 240 | 91.4k | if (col == row * 4) return 2; | 241 | 18.4E | assert(0 && "Unsupported transform size"); | 242 | 18.4E | } else { | 243 | 67.7k | if (row == col * 2) return -1; | 244 | 12.1k | if (row == col * 4) return -2; | 245 | 18.4E | assert(0 && "Unsupported transform size"); | 246 | 18.4E | } | 247 | 0 | return 0; // Invalid | 248 | 279k | } |
Unexecuted instantiation: cdef_block_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: cfl_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: convolve_2d_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: convolve_avx2.c:get_rect_tx_log_ratio highbd_inv_txfm_avx2.c:get_rect_tx_log_ratio Line | Count | Source | 236 | 3.48M | static inline int get_rect_tx_log_ratio(int col, int row) { | 237 | 3.48M | if (col == row) return 0; | 238 | 1.53M | if (col > row) { | 239 | 1.17M | if (col == row * 2) return 1; | 240 | 615k | if (col == row * 4) return 2; | 241 | 18.4E | assert(0 && "Unsupported transform size"); | 242 | 18.4E | } else { | 243 | 359k | if (row == col * 2) return -1; | 244 | 74.3k | if (row == col * 4) return -2; | 245 | 18.4E | assert(0 && "Unsupported transform size"); | 246 | 18.4E | } | 247 | 0 | return 0; // Invalid | 248 | 1.53M | } |
Unexecuted instantiation: jnt_convolve_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: reconinter_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: resize_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: selfguided_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: warp_plane_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: wiener_convolve_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: highbd_warp_affine_avx2.c:get_rect_tx_log_ratio Unexecuted instantiation: av1_inv_txfm1d.c:get_rect_tx_log_ratio |
249 | | |
250 | | void av1_gen_fwd_stage_range(int8_t *stage_range_col, int8_t *stage_range_row, |
251 | | const TXFM_2D_FLIP_CFG *cfg, int bd); |
252 | | |
253 | | void av1_gen_inv_stage_range(int8_t *stage_range_col, int8_t *stage_range_row, |
254 | | const TXFM_2D_FLIP_CFG *cfg, TX_SIZE tx_size, |
255 | | int bd); |
256 | | |
257 | | void av1_get_fwd_txfm_cfg(TX_TYPE tx_type, TX_SIZE tx_size, |
258 | | TXFM_2D_FLIP_CFG *cfg); |
259 | | void av1_get_inv_txfm_cfg(TX_TYPE tx_type, TX_SIZE tx_size, |
260 | | TXFM_2D_FLIP_CFG *cfg); |
261 | | extern const TXFM_TYPE av1_txfm_type_ls[5][TX_TYPES_1D]; |
262 | | extern const int8_t av1_txfm_stage_num_list[TXFM_TYPES]; |
263 | 9.65M | static inline int get_txw_idx(TX_SIZE tx_size) { |
264 | 9.65M | return tx_size_wide_log2[tx_size] - tx_size_wide_log2[0]; |
265 | 9.65M | } Unexecuted instantiation: av1_dx_iface.c:get_txw_idx Unexecuted instantiation: decodeframe.c:get_txw_idx Unexecuted instantiation: decodemv.c:get_txw_idx Unexecuted instantiation: decoder.c:get_txw_idx Unexecuted instantiation: decodetxb.c:get_txw_idx Unexecuted instantiation: detokenize.c:get_txw_idx Unexecuted instantiation: obu.c:get_txw_idx Unexecuted instantiation: av1_rtcd.c:get_txw_idx Unexecuted instantiation: highbd_convolve_ssse3.c:get_txw_idx Unexecuted instantiation: intrapred_sse4.c:get_txw_idx Unexecuted instantiation: intrapred_avx2.c:get_txw_idx Unexecuted instantiation: highbd_convolve_avx2.c:get_txw_idx Unexecuted instantiation: alloccommon.c:get_txw_idx Unexecuted instantiation: av1_inv_txfm2d.c:get_txw_idx Unexecuted instantiation: av1_loopfilter.c:get_txw_idx Unexecuted instantiation: av1_txfm.c:get_txw_idx Unexecuted instantiation: blockd.c:get_txw_idx Unexecuted instantiation: cdef.c:get_txw_idx Unexecuted instantiation: cdef_block.c:get_txw_idx Unexecuted instantiation: cfl.c:get_txw_idx Unexecuted instantiation: convolve.c:get_txw_idx Unexecuted instantiation: entropy.c:get_txw_idx Unexecuted instantiation: entropymode.c:get_txw_idx Unexecuted instantiation: entropymv.c:get_txw_idx Unexecuted instantiation: idct.c:get_txw_idx Unexecuted instantiation: mvref_common.c:get_txw_idx Unexecuted instantiation: pred_common.c:get_txw_idx Unexecuted instantiation: quant_common.c:get_txw_idx Unexecuted instantiation: reconinter.c:get_txw_idx Unexecuted instantiation: reconintra.c:get_txw_idx Unexecuted instantiation: resize.c:get_txw_idx Unexecuted instantiation: restoration.c:get_txw_idx Unexecuted instantiation: scale.c:get_txw_idx Unexecuted instantiation: scan.c:get_txw_idx Unexecuted instantiation: thread_common.c:get_txw_idx Unexecuted instantiation: tile_common.c:get_txw_idx Unexecuted instantiation: txb_common.c:get_txw_idx Unexecuted instantiation: warped_motion.c:get_txw_idx Unexecuted instantiation: cfl_sse2.c:get_txw_idx Unexecuted instantiation: convolve_2d_sse2.c:get_txw_idx Unexecuted instantiation: convolve_sse2.c:get_txw_idx Unexecuted instantiation: jnt_convolve_sse2.c:get_txw_idx Unexecuted instantiation: resize_sse2.c:get_txw_idx Unexecuted instantiation: wiener_convolve_sse2.c:get_txw_idx av1_inv_txfm_ssse3.c:get_txw_idx Line | Count | Source | 263 | 2.65M | static inline int get_txw_idx(TX_SIZE tx_size) { | 264 | 2.65M | return tx_size_wide_log2[tx_size] - tx_size_wide_log2[0]; | 265 | 2.65M | } |
Unexecuted instantiation: cfl_ssse3.c:get_txw_idx Unexecuted instantiation: jnt_convolve_ssse3.c:get_txw_idx Unexecuted instantiation: resize_ssse3.c:get_txw_idx Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_txw_idx Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_txw_idx Unexecuted instantiation: reconinter_ssse3.c:get_txw_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_txw_idx Unexecuted instantiation: av1_convolve_scale_sse4.c:get_txw_idx Unexecuted instantiation: av1_txfm_sse4.c:get_txw_idx Unexecuted instantiation: cdef_block_sse4.c:get_txw_idx Unexecuted instantiation: filterintra_sse4.c:get_txw_idx highbd_inv_txfm_sse4.c:get_txw_idx Line | Count | Source | 263 | 2.47M | static inline int get_txw_idx(TX_SIZE tx_size) { | 264 | 2.47M | return tx_size_wide_log2[tx_size] - tx_size_wide_log2[0]; | 265 | 2.47M | } |
Unexecuted instantiation: intra_edge_sse4.c:get_txw_idx Unexecuted instantiation: reconinter_sse4.c:get_txw_idx Unexecuted instantiation: selfguided_sse4.c:get_txw_idx Unexecuted instantiation: warp_plane_sse4.c:get_txw_idx Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_txw_idx Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_txw_idx Unexecuted instantiation: highbd_warp_plane_sse4.c:get_txw_idx av1_inv_txfm_avx2.c:get_txw_idx Line | Count | Source | 263 | 1.03M | static inline int get_txw_idx(TX_SIZE tx_size) { | 264 | 1.03M | return tx_size_wide_log2[tx_size] - tx_size_wide_log2[0]; | 265 | 1.03M | } |
Unexecuted instantiation: cdef_block_avx2.c:get_txw_idx Unexecuted instantiation: cfl_avx2.c:get_txw_idx Unexecuted instantiation: convolve_2d_avx2.c:get_txw_idx Unexecuted instantiation: convolve_avx2.c:get_txw_idx highbd_inv_txfm_avx2.c:get_txw_idx Line | Count | Source | 263 | 3.48M | static inline int get_txw_idx(TX_SIZE tx_size) { | 264 | 3.48M | return tx_size_wide_log2[tx_size] - tx_size_wide_log2[0]; | 265 | 3.48M | } |
Unexecuted instantiation: jnt_convolve_avx2.c:get_txw_idx Unexecuted instantiation: reconinter_avx2.c:get_txw_idx Unexecuted instantiation: resize_avx2.c:get_txw_idx Unexecuted instantiation: selfguided_avx2.c:get_txw_idx Unexecuted instantiation: warp_plane_avx2.c:get_txw_idx Unexecuted instantiation: wiener_convolve_avx2.c:get_txw_idx Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_txw_idx Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_txw_idx Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_txw_idx Unexecuted instantiation: highbd_warp_affine_avx2.c:get_txw_idx Unexecuted instantiation: av1_inv_txfm1d.c:get_txw_idx |
266 | 9.65M | static inline int get_txh_idx(TX_SIZE tx_size) { |
267 | 9.65M | return tx_size_high_log2[tx_size] - tx_size_high_log2[0]; |
268 | 9.65M | } Unexecuted instantiation: av1_dx_iface.c:get_txh_idx Unexecuted instantiation: decodeframe.c:get_txh_idx Unexecuted instantiation: decodemv.c:get_txh_idx Unexecuted instantiation: decoder.c:get_txh_idx Unexecuted instantiation: decodetxb.c:get_txh_idx Unexecuted instantiation: detokenize.c:get_txh_idx Unexecuted instantiation: obu.c:get_txh_idx Unexecuted instantiation: av1_rtcd.c:get_txh_idx Unexecuted instantiation: highbd_convolve_ssse3.c:get_txh_idx Unexecuted instantiation: intrapred_sse4.c:get_txh_idx Unexecuted instantiation: intrapred_avx2.c:get_txh_idx Unexecuted instantiation: highbd_convolve_avx2.c:get_txh_idx Unexecuted instantiation: alloccommon.c:get_txh_idx Unexecuted instantiation: av1_inv_txfm2d.c:get_txh_idx Unexecuted instantiation: av1_loopfilter.c:get_txh_idx Unexecuted instantiation: av1_txfm.c:get_txh_idx Unexecuted instantiation: blockd.c:get_txh_idx Unexecuted instantiation: cdef.c:get_txh_idx Unexecuted instantiation: cdef_block.c:get_txh_idx Unexecuted instantiation: cfl.c:get_txh_idx Unexecuted instantiation: convolve.c:get_txh_idx Unexecuted instantiation: entropy.c:get_txh_idx Unexecuted instantiation: entropymode.c:get_txh_idx Unexecuted instantiation: entropymv.c:get_txh_idx Unexecuted instantiation: idct.c:get_txh_idx Unexecuted instantiation: mvref_common.c:get_txh_idx Unexecuted instantiation: pred_common.c:get_txh_idx Unexecuted instantiation: quant_common.c:get_txh_idx Unexecuted instantiation: reconinter.c:get_txh_idx Unexecuted instantiation: reconintra.c:get_txh_idx Unexecuted instantiation: resize.c:get_txh_idx Unexecuted instantiation: restoration.c:get_txh_idx Unexecuted instantiation: scale.c:get_txh_idx Unexecuted instantiation: scan.c:get_txh_idx Unexecuted instantiation: thread_common.c:get_txh_idx Unexecuted instantiation: tile_common.c:get_txh_idx Unexecuted instantiation: txb_common.c:get_txh_idx Unexecuted instantiation: warped_motion.c:get_txh_idx Unexecuted instantiation: cfl_sse2.c:get_txh_idx Unexecuted instantiation: convolve_2d_sse2.c:get_txh_idx Unexecuted instantiation: convolve_sse2.c:get_txh_idx Unexecuted instantiation: jnt_convolve_sse2.c:get_txh_idx Unexecuted instantiation: resize_sse2.c:get_txh_idx Unexecuted instantiation: wiener_convolve_sse2.c:get_txh_idx av1_inv_txfm_ssse3.c:get_txh_idx Line | Count | Source | 266 | 2.65M | static inline int get_txh_idx(TX_SIZE tx_size) { | 267 | 2.65M | return tx_size_high_log2[tx_size] - tx_size_high_log2[0]; | 268 | 2.65M | } |
Unexecuted instantiation: cfl_ssse3.c:get_txh_idx Unexecuted instantiation: jnt_convolve_ssse3.c:get_txh_idx Unexecuted instantiation: resize_ssse3.c:get_txh_idx Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_txh_idx Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_txh_idx Unexecuted instantiation: reconinter_ssse3.c:get_txh_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_txh_idx Unexecuted instantiation: av1_convolve_scale_sse4.c:get_txh_idx Unexecuted instantiation: av1_txfm_sse4.c:get_txh_idx Unexecuted instantiation: cdef_block_sse4.c:get_txh_idx Unexecuted instantiation: filterintra_sse4.c:get_txh_idx highbd_inv_txfm_sse4.c:get_txh_idx Line | Count | Source | 266 | 2.47M | static inline int get_txh_idx(TX_SIZE tx_size) { | 267 | 2.47M | return tx_size_high_log2[tx_size] - tx_size_high_log2[0]; | 268 | 2.47M | } |
Unexecuted instantiation: intra_edge_sse4.c:get_txh_idx Unexecuted instantiation: reconinter_sse4.c:get_txh_idx Unexecuted instantiation: selfguided_sse4.c:get_txh_idx Unexecuted instantiation: warp_plane_sse4.c:get_txh_idx Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_txh_idx Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_txh_idx Unexecuted instantiation: highbd_warp_plane_sse4.c:get_txh_idx av1_inv_txfm_avx2.c:get_txh_idx Line | Count | Source | 266 | 1.03M | static inline int get_txh_idx(TX_SIZE tx_size) { | 267 | 1.03M | return tx_size_high_log2[tx_size] - tx_size_high_log2[0]; | 268 | 1.03M | } |
Unexecuted instantiation: cdef_block_avx2.c:get_txh_idx Unexecuted instantiation: cfl_avx2.c:get_txh_idx Unexecuted instantiation: convolve_2d_avx2.c:get_txh_idx Unexecuted instantiation: convolve_avx2.c:get_txh_idx highbd_inv_txfm_avx2.c:get_txh_idx Line | Count | Source | 266 | 3.48M | static inline int get_txh_idx(TX_SIZE tx_size) { | 267 | 3.48M | return tx_size_high_log2[tx_size] - tx_size_high_log2[0]; | 268 | 3.48M | } |
Unexecuted instantiation: jnt_convolve_avx2.c:get_txh_idx Unexecuted instantiation: reconinter_avx2.c:get_txh_idx Unexecuted instantiation: resize_avx2.c:get_txh_idx Unexecuted instantiation: selfguided_avx2.c:get_txh_idx Unexecuted instantiation: warp_plane_avx2.c:get_txh_idx Unexecuted instantiation: wiener_convolve_avx2.c:get_txh_idx Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_txh_idx Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_txh_idx Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_txh_idx Unexecuted instantiation: highbd_warp_affine_avx2.c:get_txh_idx Unexecuted instantiation: av1_inv_txfm1d.c:get_txh_idx |
269 | | |
270 | | void av1_range_check_buf(int32_t stage, const int32_t *input, |
271 | | const int32_t *buf, int32_t size, int8_t bit); |
272 | | #define MAX_TXWH_IDX 5 |
273 | | #ifdef __cplusplus |
274 | | } |
275 | | #endif // __cplusplus |
276 | | |
277 | | #endif // AOM_AV1_COMMON_AV1_TXFM_H_ |