Coverage Report

Created: 2026-04-01 07:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libvpx/vp9/common/vp9_entropy.h
Line
Count
Source
1
/*
2
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3
 *
4
 *  Use of this source code is governed by a BSD-style license
5
 *  that can be found in the LICENSE file in the root of the source
6
 *  tree. An additional intellectual property rights grant can be found
7
 *  in the file PATENTS.  All contributing project authors may
8
 *  be found in the AUTHORS file in the root of the source tree.
9
 */
10
11
#ifndef VPX_VP9_COMMON_VP9_ENTROPY_H_
12
#define VPX_VP9_COMMON_VP9_ENTROPY_H_
13
14
#include "vpx/vpx_integer.h"
15
#include "vpx_dsp/prob.h"
16
17
#include "vp9/common/vp9_common.h"
18
#include "vp9/common/vp9_enums.h"
19
20
#ifdef __cplusplus
21
extern "C" {
22
#endif
23
24
45.7M
#define DIFF_UPDATE_PROB 252
25
26
// Coefficient token alphabet
27
252M
#define ZERO_TOKEN 0        // 0     Extra Bits 0+0
28
193M
#define ONE_TOKEN 1         // 1     Extra Bits 0+1
29
400M
#define TWO_TOKEN 2         // 2     Extra Bits 0+1
30
37.4M
#define THREE_TOKEN 3       // 3     Extra Bits 0+1
31
#define FOUR_TOKEN 4        // 4     Extra Bits 0+1
32
74.5M
#define CATEGORY1_TOKEN 5   // 5-6   Extra Bits 1+1
33
#define CATEGORY2_TOKEN 6   // 7-10  Extra Bits 2+1
34
#define CATEGORY3_TOKEN 7   // 11-18 Extra Bits 3+1
35
#define CATEGORY4_TOKEN 8   // 19-34 Extra Bits 4+1
36
#define CATEGORY5_TOKEN 9   // 35-66 Extra Bits 5+1
37
475M
#define CATEGORY6_TOKEN 10  // 67+   Extra Bits 14+1
38
3.51G
#define EOB_TOKEN 11        // EOB   Extra Bits 0+0
39
1.08G
#define MAX_TOKEN EOB_TOKEN
40
41
0
#define ENTROPY_TOKENS 12
42
43
1.13G
#define ENTROPY_NODES 11
44
45
2.32G
#define MAX_ENERGY_CLASS 5
46
DECLARE_ALIGNED(16, extern const uint8_t, vp9_pt_energy_class[ENTROPY_TOKENS]);
47
48
2.10M
#define CAT1_MIN_VAL 5
49
1.68M
#define CAT2_MIN_VAL 7
50
1.07M
#define CAT3_MIN_VAL 11
51
673k
#define CAT4_MIN_VAL 19
52
473k
#define CAT5_MIN_VAL 35
53
46.7G
#define CAT6_MIN_VAL 67
54
55
// Extra bit probabilities.
56
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat1_prob[1]);
57
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat2_prob[2]);
58
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat3_prob[3]);
59
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat4_prob[4]);
60
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat5_prob[5]);
61
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat6_prob[14]);
62
63
#if CONFIG_VP9_HIGHBITDEPTH
64
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat1_prob_high10[1]);
65
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat2_prob_high10[2]);
66
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat3_prob_high10[3]);
67
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat4_prob_high10[4]);
68
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat5_prob_high10[5]);
69
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat6_prob_high10[16]);
70
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat1_prob_high12[1]);
71
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat2_prob_high12[2]);
72
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat3_prob_high12[3]);
73
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat4_prob_high12[4]);
74
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat5_prob_high12[5]);
75
DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat6_prob_high12[18]);
76
#endif  // CONFIG_VP9_HIGHBITDEPTH
77
78
64.0M
#define EOB_MODEL_TOKEN 3
79
80
#define DCT_MAX_VALUE 16384
81
#if CONFIG_VP9_HIGHBITDEPTH
82
#define DCT_MAX_VALUE_HIGH10 65536
83
#define DCT_MAX_VALUE_HIGH12 262144
84
#endif  // CONFIG_VP9_HIGHBITDEPTH
85
86
/* Coefficients are predicted via a 3-dimensional probability table. */
87
88
5.67M
#define REF_TYPES 2  // intra=0, inter=1
89
90
/* Middle dimension reflects the coefficient position within the transform. */
91
26.4M
#define COEF_BANDS 6
92
93
/* Inside dimension is measure of nearby complexity, that reflects the energy
94
   of nearby coefficients are nonzero.  For the first coefficient (DC, unless
95
   block type is 0), we look at the (already encoded) blocks above and to the
96
   left of the current block.  The context index is then the number (0,1,or 2)
97
   of these blocks having nonzero coefficients.
98
   After decoding a coefficient, the measure is determined by the size of the
99
   most recently decoded coefficient.
100
   Note that the intuitive meaning of this measure changes as coefficients
101
   are decoded, e.g., prior to the first token, a zero means that my neighbors
102
   are empty while, after the first token, because of the use of end-of-block,
103
   a zero means we just decoded a zero and hence guarantees that a non-zero
104
   coefficient will appear later in this block.  However, this shift
105
   in meaning is perfectly OK because our context depends also on the
106
   coefficient band (and since zigzag positions 0, 1, and 2 are in
107
   distinct bands). */
108
109
132M
#define COEFF_CONTEXTS 6
110
147M
#define BAND_COEFF_CONTEXTS(band) ((band) == 0 ? 3 : COEFF_CONTEXTS)
111
112
// #define ENTROPY_STATS
113
114
typedef unsigned int vp9_coeff_count[REF_TYPES][COEF_BANDS][COEFF_CONTEXTS]
115
                                    [ENTROPY_TOKENS];
116
typedef unsigned int vp9_coeff_stats[REF_TYPES][COEF_BANDS][COEFF_CONTEXTS]
117
                                    [ENTROPY_NODES][2];
118
119
#define SUBEXP_PARAM 4   /* Subexponential code parameter */
120
#define MODULUS_PARAM 13 /* Modulus parameter */
121
122
struct VP9Common;
123
void vp9_default_coef_probs(struct VP9Common *cm);
124
void vp9_adapt_coef_probs(struct VP9Common *cm);
125
126
// This is the index in the scan order beyond which all coefficients for
127
// 8x8 transform and above are in the top band.
128
// This macro is currently unused but may be used by certain implementations
129
#define MAXBAND_INDEX 21
130
131
DECLARE_ALIGNED(16, extern const uint8_t, vp9_coefband_trans_8x8plus[1024]);
132
DECLARE_ALIGNED(16, extern const uint8_t, vp9_coefband_trans_4x4[16]);
133
134
121M
static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
135
121M
  return tx_size == TX_4X4 ? vp9_coefband_trans_4x4
136
121M
                           : vp9_coefband_trans_8x8plus;
137
121M
}
Unexecuted instantiation: vp9_dx_iface.c:get_band_translate
Unexecuted instantiation: vp9_decodeframe.c:get_band_translate
vp9_detokenize.c:get_band_translate
Line
Count
Source
134
82.5M
static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
135
82.5M
  return tx_size == TX_4X4 ? vp9_coefband_trans_4x4
136
82.5M
                           : vp9_coefband_trans_8x8plus;
137
82.5M
}
Unexecuted instantiation: vp9_decoder.c:get_band_translate
Unexecuted instantiation: vp9_dsubexp.c:get_band_translate
Unexecuted instantiation: yv12config.c:get_band_translate
Unexecuted instantiation: vp9_alloccommon.c:get_band_translate
Unexecuted instantiation: vp9_blockd.c:get_band_translate
Unexecuted instantiation: vp9_entropy.c:get_band_translate
Unexecuted instantiation: vp9_entropymode.c:get_band_translate
Unexecuted instantiation: vp9_entropymv.c:get_band_translate
Unexecuted instantiation: vp9_idct.c:get_band_translate
Unexecuted instantiation: vp9_pred_common.c:get_band_translate
Unexecuted instantiation: vp9_seg_common.c:get_band_translate
Unexecuted instantiation: vp9_tile_common.c:get_band_translate
Unexecuted instantiation: vp9_loopfilter.c:get_band_translate
Unexecuted instantiation: vp9_thread_common.c:get_band_translate
Unexecuted instantiation: vp9_reconinter.c:get_band_translate
Unexecuted instantiation: vp9_reconintra.c:get_band_translate
Unexecuted instantiation: vp9_scan.c:get_band_translate
Unexecuted instantiation: vp9_frame_scale.c:get_band_translate
Unexecuted instantiation: vp9_encoder.c:get_band_translate
Unexecuted instantiation: vp9_picklpf.c:get_band_translate
Unexecuted instantiation: vp9_quantize.c:get_band_translate
Unexecuted instantiation: vp9_ratectrl.c:get_band_translate
Unexecuted instantiation: vp9_rd.c:get_band_translate
Unexecuted instantiation: vp9_segmentation.c:get_band_translate
Unexecuted instantiation: vp9_speed_features.c:get_band_translate
Unexecuted instantiation: vp9_svc_layercontext.c:get_band_translate
vp9_tokenize.c:get_band_translate
Line
Count
Source
134
9.42M
static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
135
9.42M
  return tx_size == TX_4X4 ? vp9_coefband_trans_4x4
136
9.42M
                           : vp9_coefband_trans_8x8plus;
137
9.42M
}
Unexecuted instantiation: vp9_aq_variance.c:get_band_translate
Unexecuted instantiation: vp9_aq_360.c:get_band_translate
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:get_band_translate
Unexecuted instantiation: vp9_aq_complexity.c:get_band_translate
Unexecuted instantiation: vp9_alt_ref_aq.c:get_band_translate
Unexecuted instantiation: vp9_skin_detection.c:get_band_translate
Unexecuted instantiation: vp9_noise_estimate.c:get_band_translate
Unexecuted instantiation: vp9_ext_ratectrl.c:get_band_translate
Unexecuted instantiation: vp9_temporal_filter.c:get_band_translate
Unexecuted instantiation: vp9_tpl_model.c:get_band_translate
Unexecuted instantiation: vp9_mbgraph.c:get_band_translate
Unexecuted instantiation: temporal_filter_sse4.c:get_band_translate
Unexecuted instantiation: vp9_quantize_sse2.c:get_band_translate
Unexecuted instantiation: vp9_quantize_ssse3.c:get_band_translate
Unexecuted instantiation: vp9_quantize_avx2.c:get_band_translate
Unexecuted instantiation: highbd_temporal_filter_sse4.c:get_band_translate
Unexecuted instantiation: vp9_decodemv.c:get_band_translate
Unexecuted instantiation: quantize.c:get_band_translate
Unexecuted instantiation: quantize_sse2.c:get_band_translate
Unexecuted instantiation: quantize_ssse3.c:get_band_translate
Unexecuted instantiation: quantize_avx.c:get_band_translate
Unexecuted instantiation: quantize_avx2.c:get_band_translate
Unexecuted instantiation: highbd_quantize_intrin_sse2.c:get_band_translate
Unexecuted instantiation: highbd_quantize_intrin_avx2.c:get_band_translate
Unexecuted instantiation: vp9_cx_iface.c:get_band_translate
Unexecuted instantiation: vp9_bitstream.c:get_band_translate
Unexecuted instantiation: vp9_context_tree.c:get_band_translate
Unexecuted instantiation: vp9_dct.c:get_band_translate
Unexecuted instantiation: vp9_encodeframe.c:get_band_translate
vp9_encodemb.c:get_band_translate
Line
Count
Source
134
29.1M
static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
135
29.1M
  return tx_size == TX_4X4 ? vp9_coefband_trans_4x4
136
29.1M
                           : vp9_coefband_trans_8x8plus;
137
29.1M
}
Unexecuted instantiation: vp9_encodemv.c:get_band_translate
Unexecuted instantiation: vp9_ethread.c:get_band_translate
Unexecuted instantiation: vp9_firstpass.c:get_band_translate
Unexecuted instantiation: vp9_lookahead.c:get_band_translate
Unexecuted instantiation: vp9_multi_thread.c:get_band_translate
Unexecuted instantiation: vp9_mcomp.c:get_band_translate
Unexecuted instantiation: vp9_rdopt.c:get_band_translate
Unexecuted instantiation: vp9_pickmode.c:get_band_translate
Unexecuted instantiation: vp9_subexp.c:get_band_translate
Unexecuted instantiation: vp9_mvref_common.c:get_band_translate
138
139
// 128 lists of probabilities are stored for the following ONE node probs:
140
// 1, 3, 5, 7, ..., 253, 255
141
// In between probabilities are interpolated linearly
142
#define COEFF_PROB_MODELS 255
143
144
1.45G
#define UNCONSTRAINED_NODES 3
145
146
283M
#define PIVOT_NODE 2  // which node is pivot
147
148
37.4M
#define MODEL_NODES (ENTROPY_NODES - UNCONSTRAINED_NODES)
149
extern const vpx_tree_index vp9_coef_con_tree[TREE_SIZE(ENTROPY_TOKENS)];
150
extern const vpx_prob vp9_pareto8_full[COEFF_PROB_MODELS][MODEL_NODES];
151
152
typedef vpx_prob vp9_coeff_probs_model[REF_TYPES][COEF_BANDS][COEFF_CONTEXTS]
153
                                      [UNCONSTRAINED_NODES];
154
155
typedef unsigned int vp9_coeff_count_model[REF_TYPES][COEF_BANDS]
156
                                          [COEFF_CONTEXTS]
157
                                          [UNCONSTRAINED_NODES + 1];
158
159
void vp9_model_to_full_probs(const vpx_prob *model, vpx_prob *full);
160
161
typedef char ENTROPY_CONTEXT;
162
163
static INLINE int combine_entropy_contexts(ENTROPY_CONTEXT a,
164
611M
                                           ENTROPY_CONTEXT b) {
165
611M
  return (a != 0) + (b != 0);
166
611M
}
Unexecuted instantiation: vp9_dx_iface.c:combine_entropy_contexts
Unexecuted instantiation: vp9_decodeframe.c:combine_entropy_contexts
Unexecuted instantiation: vp9_detokenize.c:combine_entropy_contexts
Unexecuted instantiation: vp9_decoder.c:combine_entropy_contexts
Unexecuted instantiation: vp9_dsubexp.c:combine_entropy_contexts
Unexecuted instantiation: yv12config.c:combine_entropy_contexts
Unexecuted instantiation: vp9_alloccommon.c:combine_entropy_contexts
Unexecuted instantiation: vp9_blockd.c:combine_entropy_contexts
Unexecuted instantiation: vp9_entropy.c:combine_entropy_contexts
Unexecuted instantiation: vp9_entropymode.c:combine_entropy_contexts
Unexecuted instantiation: vp9_entropymv.c:combine_entropy_contexts
Unexecuted instantiation: vp9_idct.c:combine_entropy_contexts
Unexecuted instantiation: vp9_pred_common.c:combine_entropy_contexts
Unexecuted instantiation: vp9_seg_common.c:combine_entropy_contexts
Unexecuted instantiation: vp9_tile_common.c:combine_entropy_contexts
Unexecuted instantiation: vp9_loopfilter.c:combine_entropy_contexts
Unexecuted instantiation: vp9_thread_common.c:combine_entropy_contexts
Unexecuted instantiation: vp9_reconinter.c:combine_entropy_contexts
Unexecuted instantiation: vp9_reconintra.c:combine_entropy_contexts
Unexecuted instantiation: vp9_scan.c:combine_entropy_contexts
Unexecuted instantiation: vp9_frame_scale.c:combine_entropy_contexts
Unexecuted instantiation: vp9_encoder.c:combine_entropy_contexts
Unexecuted instantiation: vp9_picklpf.c:combine_entropy_contexts
Unexecuted instantiation: vp9_quantize.c:combine_entropy_contexts
Unexecuted instantiation: vp9_ratectrl.c:combine_entropy_contexts
Unexecuted instantiation: vp9_rd.c:combine_entropy_contexts
Unexecuted instantiation: vp9_segmentation.c:combine_entropy_contexts
Unexecuted instantiation: vp9_speed_features.c:combine_entropy_contexts
Unexecuted instantiation: vp9_svc_layercontext.c:combine_entropy_contexts
vp9_tokenize.c:combine_entropy_contexts
Line
Count
Source
164
9.42M
                                           ENTROPY_CONTEXT b) {
165
9.42M
  return (a != 0) + (b != 0);
166
9.42M
}
Unexecuted instantiation: vp9_aq_variance.c:combine_entropy_contexts
Unexecuted instantiation: vp9_aq_360.c:combine_entropy_contexts
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:combine_entropy_contexts
Unexecuted instantiation: vp9_aq_complexity.c:combine_entropy_contexts
Unexecuted instantiation: vp9_alt_ref_aq.c:combine_entropy_contexts
Unexecuted instantiation: vp9_skin_detection.c:combine_entropy_contexts
Unexecuted instantiation: vp9_noise_estimate.c:combine_entropy_contexts
Unexecuted instantiation: vp9_ext_ratectrl.c:combine_entropy_contexts
Unexecuted instantiation: vp9_temporal_filter.c:combine_entropy_contexts
Unexecuted instantiation: vp9_tpl_model.c:combine_entropy_contexts
Unexecuted instantiation: vp9_mbgraph.c:combine_entropy_contexts
Unexecuted instantiation: temporal_filter_sse4.c:combine_entropy_contexts
Unexecuted instantiation: vp9_quantize_sse2.c:combine_entropy_contexts
Unexecuted instantiation: vp9_quantize_ssse3.c:combine_entropy_contexts
Unexecuted instantiation: vp9_quantize_avx2.c:combine_entropy_contexts
Unexecuted instantiation: highbd_temporal_filter_sse4.c:combine_entropy_contexts
Unexecuted instantiation: vp9_decodemv.c:combine_entropy_contexts
Unexecuted instantiation: quantize.c:combine_entropy_contexts
Unexecuted instantiation: quantize_sse2.c:combine_entropy_contexts
Unexecuted instantiation: quantize_ssse3.c:combine_entropy_contexts
Unexecuted instantiation: quantize_avx.c:combine_entropy_contexts
Unexecuted instantiation: quantize_avx2.c:combine_entropy_contexts
Unexecuted instantiation: highbd_quantize_intrin_sse2.c:combine_entropy_contexts
Unexecuted instantiation: highbd_quantize_intrin_avx2.c:combine_entropy_contexts
Unexecuted instantiation: vp9_cx_iface.c:combine_entropy_contexts
Unexecuted instantiation: vp9_bitstream.c:combine_entropy_contexts
Unexecuted instantiation: vp9_context_tree.c:combine_entropy_contexts
Unexecuted instantiation: vp9_dct.c:combine_entropy_contexts
Unexecuted instantiation: vp9_encodeframe.c:combine_entropy_contexts
vp9_encodemb.c:combine_entropy_contexts
Line
Count
Source
164
24.7M
                                           ENTROPY_CONTEXT b) {
165
24.7M
  return (a != 0) + (b != 0);
166
24.7M
}
Unexecuted instantiation: vp9_encodemv.c:combine_entropy_contexts
Unexecuted instantiation: vp9_ethread.c:combine_entropy_contexts
Unexecuted instantiation: vp9_firstpass.c:combine_entropy_contexts
Unexecuted instantiation: vp9_lookahead.c:combine_entropy_contexts
Unexecuted instantiation: vp9_multi_thread.c:combine_entropy_contexts
Unexecuted instantiation: vp9_mcomp.c:combine_entropy_contexts
vp9_rdopt.c:combine_entropy_contexts
Line
Count
Source
164
577M
                                           ENTROPY_CONTEXT b) {
165
577M
  return (a != 0) + (b != 0);
166
577M
}
Unexecuted instantiation: vp9_pickmode.c:combine_entropy_contexts
Unexecuted instantiation: vp9_subexp.c:combine_entropy_contexts
Unexecuted instantiation: vp9_mvref_common.c:combine_entropy_contexts
167
168
static INLINE int get_entropy_context(TX_SIZE tx_size, const ENTROPY_CONTEXT *a,
169
9.42M
                                      const ENTROPY_CONTEXT *l) {
170
9.42M
  ENTROPY_CONTEXT above_ec = 0, left_ec = 0;
171
172
9.42M
  switch (tx_size) {
173
8.81M
    case TX_4X4:
174
8.81M
      above_ec = a[0] != 0;
175
8.81M
      left_ec = l[0] != 0;
176
8.81M
      break;
177
512k
    case TX_8X8:
178
512k
      above_ec = !!*(const uint16_t *)a;
179
512k
      left_ec = !!*(const uint16_t *)l;
180
512k
      break;
181
67.8k
    case TX_16X16:
182
67.8k
      above_ec = !!*(const uint32_t *)a;
183
67.8k
      left_ec = !!*(const uint32_t *)l;
184
67.8k
      break;
185
28.6k
    case TX_32X32:
186
28.6k
      above_ec = !!*(const uint64_t *)a;
187
28.6k
      left_ec = !!*(const uint64_t *)l;
188
28.6k
      break;
189
0
    default: assert(0 && "Invalid transform size."); break;
190
9.42M
  }
191
192
9.42M
  return combine_entropy_contexts(above_ec, left_ec);
193
9.42M
}
Unexecuted instantiation: vp9_dx_iface.c:get_entropy_context
Unexecuted instantiation: vp9_decodeframe.c:get_entropy_context
Unexecuted instantiation: vp9_detokenize.c:get_entropy_context
Unexecuted instantiation: vp9_decoder.c:get_entropy_context
Unexecuted instantiation: vp9_dsubexp.c:get_entropy_context
Unexecuted instantiation: yv12config.c:get_entropy_context
Unexecuted instantiation: vp9_alloccommon.c:get_entropy_context
Unexecuted instantiation: vp9_blockd.c:get_entropy_context
Unexecuted instantiation: vp9_entropy.c:get_entropy_context
Unexecuted instantiation: vp9_entropymode.c:get_entropy_context
Unexecuted instantiation: vp9_entropymv.c:get_entropy_context
Unexecuted instantiation: vp9_idct.c:get_entropy_context
Unexecuted instantiation: vp9_pred_common.c:get_entropy_context
Unexecuted instantiation: vp9_seg_common.c:get_entropy_context
Unexecuted instantiation: vp9_tile_common.c:get_entropy_context
Unexecuted instantiation: vp9_loopfilter.c:get_entropy_context
Unexecuted instantiation: vp9_thread_common.c:get_entropy_context
Unexecuted instantiation: vp9_reconinter.c:get_entropy_context
Unexecuted instantiation: vp9_reconintra.c:get_entropy_context
Unexecuted instantiation: vp9_scan.c:get_entropy_context
Unexecuted instantiation: vp9_frame_scale.c:get_entropy_context
Unexecuted instantiation: vp9_encoder.c:get_entropy_context
Unexecuted instantiation: vp9_picklpf.c:get_entropy_context
Unexecuted instantiation: vp9_quantize.c:get_entropy_context
Unexecuted instantiation: vp9_ratectrl.c:get_entropy_context
Unexecuted instantiation: vp9_rd.c:get_entropy_context
Unexecuted instantiation: vp9_segmentation.c:get_entropy_context
Unexecuted instantiation: vp9_speed_features.c:get_entropy_context
Unexecuted instantiation: vp9_svc_layercontext.c:get_entropy_context
vp9_tokenize.c:get_entropy_context
Line
Count
Source
169
9.42M
                                      const ENTROPY_CONTEXT *l) {
170
9.42M
  ENTROPY_CONTEXT above_ec = 0, left_ec = 0;
171
172
9.42M
  switch (tx_size) {
173
8.81M
    case TX_4X4:
174
8.81M
      above_ec = a[0] != 0;
175
8.81M
      left_ec = l[0] != 0;
176
8.81M
      break;
177
512k
    case TX_8X8:
178
512k
      above_ec = !!*(const uint16_t *)a;
179
512k
      left_ec = !!*(const uint16_t *)l;
180
512k
      break;
181
67.8k
    case TX_16X16:
182
67.8k
      above_ec = !!*(const uint32_t *)a;
183
67.8k
      left_ec = !!*(const uint32_t *)l;
184
67.8k
      break;
185
28.6k
    case TX_32X32:
186
28.6k
      above_ec = !!*(const uint64_t *)a;
187
28.6k
      left_ec = !!*(const uint64_t *)l;
188
28.6k
      break;
189
0
    default: assert(0 && "Invalid transform size."); break;
190
9.42M
  }
191
192
9.42M
  return combine_entropy_contexts(above_ec, left_ec);
193
9.42M
}
Unexecuted instantiation: vp9_aq_variance.c:get_entropy_context
Unexecuted instantiation: vp9_aq_360.c:get_entropy_context
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:get_entropy_context
Unexecuted instantiation: vp9_aq_complexity.c:get_entropy_context
Unexecuted instantiation: vp9_alt_ref_aq.c:get_entropy_context
Unexecuted instantiation: vp9_skin_detection.c:get_entropy_context
Unexecuted instantiation: vp9_noise_estimate.c:get_entropy_context
Unexecuted instantiation: vp9_ext_ratectrl.c:get_entropy_context
Unexecuted instantiation: vp9_temporal_filter.c:get_entropy_context
Unexecuted instantiation: vp9_tpl_model.c:get_entropy_context
Unexecuted instantiation: vp9_mbgraph.c:get_entropy_context
Unexecuted instantiation: temporal_filter_sse4.c:get_entropy_context
Unexecuted instantiation: vp9_quantize_sse2.c:get_entropy_context
Unexecuted instantiation: vp9_quantize_ssse3.c:get_entropy_context
Unexecuted instantiation: vp9_quantize_avx2.c:get_entropy_context
Unexecuted instantiation: highbd_temporal_filter_sse4.c:get_entropy_context
Unexecuted instantiation: vp9_decodemv.c:get_entropy_context
Unexecuted instantiation: quantize.c:get_entropy_context
Unexecuted instantiation: quantize_sse2.c:get_entropy_context
Unexecuted instantiation: quantize_ssse3.c:get_entropy_context
Unexecuted instantiation: quantize_avx.c:get_entropy_context
Unexecuted instantiation: quantize_avx2.c:get_entropy_context
Unexecuted instantiation: highbd_quantize_intrin_sse2.c:get_entropy_context
Unexecuted instantiation: highbd_quantize_intrin_avx2.c:get_entropy_context
Unexecuted instantiation: vp9_cx_iface.c:get_entropy_context
Unexecuted instantiation: vp9_bitstream.c:get_entropy_context
Unexecuted instantiation: vp9_context_tree.c:get_entropy_context
Unexecuted instantiation: vp9_dct.c:get_entropy_context
Unexecuted instantiation: vp9_encodeframe.c:get_entropy_context
Unexecuted instantiation: vp9_encodemb.c:get_entropy_context
Unexecuted instantiation: vp9_encodemv.c:get_entropy_context
Unexecuted instantiation: vp9_ethread.c:get_entropy_context
Unexecuted instantiation: vp9_firstpass.c:get_entropy_context
Unexecuted instantiation: vp9_lookahead.c:get_entropy_context
Unexecuted instantiation: vp9_multi_thread.c:get_entropy_context
Unexecuted instantiation: vp9_mcomp.c:get_entropy_context
Unexecuted instantiation: vp9_rdopt.c:get_entropy_context
Unexecuted instantiation: vp9_pickmode.c:get_entropy_context
Unexecuted instantiation: vp9_subexp.c:get_entropy_context
Unexecuted instantiation: vp9_mvref_common.c:get_entropy_context
194
195
#ifdef __cplusplus
196
}  // extern "C"
197
#endif
198
199
#endif  // VPX_VP9_COMMON_VP9_ENTROPY_H_