/src/aom/av1/common/av1_common_int.h
Line | Count | Source (jump to first uncovered line) |
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_COMMON_INT_H_ |
13 | | #define AOM_AV1_COMMON_AV1_COMMON_INT_H_ |
14 | | |
15 | | #include <stdbool.h> |
16 | | |
17 | | #include "config/aom_config.h" |
18 | | #include "config/av1_rtcd.h" |
19 | | |
20 | | #include "aom/internal/aom_codec_internal.h" |
21 | | #include "aom_dsp/flow_estimation/corner_detect.h" |
22 | | #include "aom_util/aom_pthread.h" |
23 | | #include "av1/common/alloccommon.h" |
24 | | #include "av1/common/av1_loopfilter.h" |
25 | | #include "av1/common/entropy.h" |
26 | | #include "av1/common/entropymode.h" |
27 | | #include "av1/common/entropymv.h" |
28 | | #include "av1/common/enums.h" |
29 | | #include "av1/common/frame_buffers.h" |
30 | | #include "av1/common/mv.h" |
31 | | #include "av1/common/quant_common.h" |
32 | | #include "av1/common/restoration.h" |
33 | | #include "av1/common/tile_common.h" |
34 | | #include "av1/common/timing.h" |
35 | | #include "aom_dsp/grain_params.h" |
36 | | #include "aom_dsp/grain_table.h" |
37 | | #include "aom_dsp/odintrin.h" |
38 | | #ifdef __cplusplus |
39 | | extern "C" { |
40 | | #endif |
41 | | |
42 | | #if defined(__clang__) && defined(__has_warning) |
43 | | #if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") |
44 | | #define AOM_FALLTHROUGH_INTENDED [[clang::fallthrough]] // NOLINT |
45 | | #endif |
46 | | #elif defined(__GNUC__) && __GNUC__ >= 7 |
47 | | #define AOM_FALLTHROUGH_INTENDED __attribute__((fallthrough)) // NOLINT |
48 | | #endif |
49 | | |
50 | | #ifndef AOM_FALLTHROUGH_INTENDED |
51 | | #define AOM_FALLTHROUGH_INTENDED \ |
52 | 1.31M | do { \ |
53 | 1.31M | } while (0) |
54 | | #endif |
55 | | |
56 | | #define CDEF_MAX_STRENGTHS 16 |
57 | | |
58 | | /* Constant values while waiting for the sequence header */ |
59 | | #define FRAME_ID_LENGTH 15 |
60 | | #define DELTA_FRAME_ID_LENGTH 14 |
61 | | |
62 | | #define FRAME_CONTEXTS (FRAME_BUFFERS + 1) |
63 | | // Extra frame context which is always kept at default values |
64 | | #define FRAME_CONTEXT_DEFAULTS (FRAME_CONTEXTS - 1) |
65 | 72.7k | #define PRIMARY_REF_BITS 3 |
66 | 1.21M | #define PRIMARY_REF_NONE 7 |
67 | | |
68 | | #define NUM_PING_PONG_BUFFERS 2 |
69 | | |
70 | 738k | #define MAX_NUM_TEMPORAL_LAYERS 8 |
71 | 302k | #define MAX_NUM_SPATIAL_LAYERS 4 |
72 | | /* clang-format off */ |
73 | | // clang-format seems to think this is a pointer dereference and not a |
74 | | // multiplication. |
75 | | #define MAX_NUM_OPERATING_POINTS \ |
76 | | (MAX_NUM_TEMPORAL_LAYERS * MAX_NUM_SPATIAL_LAYERS) |
77 | | /* clang-format on */ |
78 | | |
79 | | // TODO(jingning): Turning this on to set up transform coefficient |
80 | | // processing timer. |
81 | | #define TXCOEFF_TIMER 0 |
82 | | #define TXCOEFF_COST_TIMER 0 |
83 | | |
84 | | /*!\cond */ |
85 | | |
86 | | enum { |
87 | | SINGLE_REFERENCE = 0, |
88 | | COMPOUND_REFERENCE = 1, |
89 | | REFERENCE_MODE_SELECT = 2, |
90 | | REFERENCE_MODES = 3, |
91 | | } UENUM1BYTE(REFERENCE_MODE); |
92 | | |
93 | | enum { |
94 | | /** |
95 | | * Frame context updates are disabled |
96 | | */ |
97 | | REFRESH_FRAME_CONTEXT_DISABLED, |
98 | | /** |
99 | | * Update frame context to values resulting from backward probability |
100 | | * updates based on entropy/counts in the decoded frame |
101 | | */ |
102 | | REFRESH_FRAME_CONTEXT_BACKWARD, |
103 | | } UENUM1BYTE(REFRESH_FRAME_CONTEXT_MODE); |
104 | | |
105 | 15.9k | #define MFMV_STACK_SIZE 3 |
106 | | typedef struct { |
107 | | int_mv mfmv0; |
108 | | uint8_t ref_frame_offset; |
109 | | } TPL_MV_REF; |
110 | | |
111 | | typedef struct { |
112 | | int_mv mv; |
113 | | MV_REFERENCE_FRAME ref_frame; |
114 | | } MV_REF; |
115 | | |
116 | | typedef struct RefCntBuffer { |
117 | | // For a RefCntBuffer, the following are reference-holding variables: |
118 | | // - cm->ref_frame_map[] |
119 | | // - cm->cur_frame |
120 | | // - cm->scaled_ref_buf[] (encoder only) |
121 | | // - pbi->output_frame_index[] (decoder only) |
122 | | // With that definition, 'ref_count' is the number of reference-holding |
123 | | // variables that are currently referencing this buffer. |
124 | | // For example: |
125 | | // - suppose this buffer is at index 'k' in the buffer pool, and |
126 | | // - Total 'n' of the variables / array elements above have value 'k' (that |
127 | | // is, they are pointing to buffer at index 'k'). |
128 | | // Then, pool->frame_bufs[k].ref_count = n. |
129 | | int ref_count; |
130 | | |
131 | | unsigned int order_hint; |
132 | | unsigned int ref_order_hints[INTER_REFS_PER_FRAME]; |
133 | | |
134 | | // These variables are used only in encoder and compare the absolute |
135 | | // display order hint to compute the relative distance and overcome |
136 | | // the limitation of get_relative_dist() which returns incorrect |
137 | | // distance when a very old frame is used as a reference. |
138 | | unsigned int display_order_hint; |
139 | | unsigned int ref_display_order_hint[INTER_REFS_PER_FRAME]; |
140 | | // Frame's level within the hierarchical structure. |
141 | | unsigned int pyramid_level; |
142 | | MV_REF *mvs; |
143 | | uint8_t *seg_map; |
144 | | struct segmentation seg; |
145 | | int mi_rows; |
146 | | int mi_cols; |
147 | | // Width and height give the size of the buffer (before any upscaling, unlike |
148 | | // the sizes that can be derived from the buf structure) |
149 | | int width; |
150 | | int height; |
151 | | WarpedMotionParams global_motion[REF_FRAMES]; |
152 | | int showable_frame; // frame can be used as show existing frame in future |
153 | | uint8_t film_grain_params_present; |
154 | | aom_film_grain_t film_grain_params; |
155 | | aom_codec_frame_buffer_t raw_frame_buffer; |
156 | | YV12_BUFFER_CONFIG buf; |
157 | | int temporal_id; // Temporal layer ID of the frame |
158 | | int spatial_id; // Spatial layer ID of the frame |
159 | | FRAME_TYPE frame_type; |
160 | | |
161 | | // This is only used in the encoder but needs to be indexed per ref frame |
162 | | // so it's extremely convenient to keep it here. |
163 | | int interp_filter_selected[SWITCHABLE]; |
164 | | |
165 | | // Inter frame reference frame delta for loop filter |
166 | | int8_t ref_deltas[REF_FRAMES]; |
167 | | |
168 | | // 0 = ZERO_MV, MV |
169 | | int8_t mode_deltas[MAX_MODE_LF_DELTAS]; |
170 | | |
171 | | FRAME_CONTEXT frame_context; |
172 | | |
173 | | int filter_level[2]; |
174 | | } RefCntBuffer; |
175 | | |
176 | | typedef struct BufferPool { |
177 | | // Protect BufferPool from being accessed by several FrameWorkers at |
178 | | // the same time during frame parallel decode. |
179 | | // TODO(hkuang): Try to use atomic variable instead of locking the whole pool. |
180 | | // TODO(wtc): Remove this. See |
181 | | // https://chromium-review.googlesource.com/c/webm/libvpx/+/560630. |
182 | | #if CONFIG_MULTITHREAD |
183 | | pthread_mutex_t pool_mutex; |
184 | | #endif |
185 | | |
186 | | // Private data associated with the frame buffer callbacks. |
187 | | void *cb_priv; |
188 | | |
189 | | aom_get_frame_buffer_cb_fn_t get_fb_cb; |
190 | | aom_release_frame_buffer_cb_fn_t release_fb_cb; |
191 | | |
192 | | RefCntBuffer *frame_bufs; |
193 | | uint8_t num_frame_bufs; |
194 | | |
195 | | // Frame buffers allocated internally by the codec. |
196 | | InternalFrameBufferList int_frame_buffers; |
197 | | } BufferPool; |
198 | | |
199 | | /*!\endcond */ |
200 | | |
201 | | /*!\brief Parameters related to CDEF */ |
202 | | typedef struct { |
203 | | //! CDEF column line buffer |
204 | | uint16_t *colbuf[MAX_MB_PLANE]; |
205 | | //! CDEF top & bottom line buffer |
206 | | uint16_t *linebuf[MAX_MB_PLANE]; |
207 | | //! CDEF intermediate buffer |
208 | | uint16_t *srcbuf; |
209 | | //! CDEF column line buffer sizes |
210 | | size_t allocated_colbuf_size[MAX_MB_PLANE]; |
211 | | //! CDEF top and bottom line buffer sizes |
212 | | size_t allocated_linebuf_size[MAX_MB_PLANE]; |
213 | | //! CDEF intermediate buffer size |
214 | | size_t allocated_srcbuf_size; |
215 | | //! CDEF damping factor |
216 | | int cdef_damping; |
217 | | //! Number of CDEF strength values |
218 | | int nb_cdef_strengths; |
219 | | //! CDEF strength values for luma |
220 | | int cdef_strengths[CDEF_MAX_STRENGTHS]; |
221 | | //! CDEF strength values for chroma |
222 | | int cdef_uv_strengths[CDEF_MAX_STRENGTHS]; |
223 | | //! Number of CDEF strength values in bits |
224 | | int cdef_bits; |
225 | | //! Number of rows in the frame in 4 pixel |
226 | | int allocated_mi_rows; |
227 | | //! Number of CDEF workers |
228 | | int allocated_num_workers; |
229 | | } CdefInfo; |
230 | | |
231 | | /*!\cond */ |
232 | | |
233 | | typedef struct { |
234 | | int delta_q_present_flag; |
235 | | // Resolution of delta quant |
236 | | int delta_q_res; |
237 | | int delta_lf_present_flag; |
238 | | // Resolution of delta lf level |
239 | | int delta_lf_res; |
240 | | // This is a flag for number of deltas of loop filter level |
241 | | // 0: use 1 delta, for y_vertical, y_horizontal, u, and v |
242 | | // 1: use separate deltas for each filter level |
243 | | int delta_lf_multi; |
244 | | } DeltaQInfo; |
245 | | |
246 | | typedef struct { |
247 | | int enable_order_hint; // 0 - disable order hint, and related tools |
248 | | int order_hint_bits_minus_1; // dist_wtd_comp, ref_frame_mvs, |
249 | | // frame_sign_bias |
250 | | // if 0, enable_dist_wtd_comp and |
251 | | // enable_ref_frame_mvs must be set as 0. |
252 | | int enable_dist_wtd_comp; // 0 - disable dist-wtd compound modes |
253 | | // 1 - enable it |
254 | | int enable_ref_frame_mvs; // 0 - disable ref frame mvs |
255 | | // 1 - enable it |
256 | | } OrderHintInfo; |
257 | | |
258 | | // Sequence header structure. |
259 | | // Note: All syntax elements of sequence_header_obu that need to be |
260 | | // bit-identical across multiple sequence headers must be part of this struct, |
261 | | // so that consistency is checked by are_seq_headers_consistent() function. |
262 | | // One exception is the last member 'op_params' that is ignored by |
263 | | // are_seq_headers_consistent() function. |
264 | | typedef struct SequenceHeader { |
265 | | int num_bits_width; |
266 | | int num_bits_height; |
267 | | int max_frame_width; |
268 | | int max_frame_height; |
269 | | // Whether current and reference frame IDs are signaled in the bitstream. |
270 | | // Frame id numbers are additional information that do not affect the |
271 | | // decoding process, but provide decoders with a way of detecting missing |
272 | | // reference frames so that appropriate action can be taken. |
273 | | uint8_t frame_id_numbers_present_flag; |
274 | | int frame_id_length; |
275 | | int delta_frame_id_length; |
276 | | BLOCK_SIZE sb_size; // Size of the superblock used for this frame |
277 | | int mib_size; // Size of the superblock in units of MI blocks |
278 | | int mib_size_log2; // Log 2 of above. |
279 | | |
280 | | OrderHintInfo order_hint_info; |
281 | | |
282 | | uint8_t force_screen_content_tools; // 0 - force off |
283 | | // 1 - force on |
284 | | // 2 - adaptive |
285 | | uint8_t still_picture; // Video is a single frame still picture |
286 | | uint8_t reduced_still_picture_hdr; // Use reduced header for still picture |
287 | | uint8_t force_integer_mv; // 0 - Don't force. MV can use subpel |
288 | | // 1 - force to integer |
289 | | // 2 - adaptive |
290 | | uint8_t enable_filter_intra; // enables/disables filterintra |
291 | | uint8_t enable_intra_edge_filter; // enables/disables edge upsampling |
292 | | uint8_t enable_interintra_compound; // enables/disables interintra_compound |
293 | | uint8_t enable_masked_compound; // enables/disables masked compound |
294 | | uint8_t enable_dual_filter; // 0 - disable dual interpolation filter |
295 | | // 1 - enable vert/horz filter selection |
296 | | uint8_t enable_warped_motion; // 0 - disable warp for the sequence |
297 | | // 1 - enable warp for the sequence |
298 | | uint8_t enable_superres; // 0 - Disable superres for the sequence |
299 | | // and no frame level superres flag |
300 | | // 1 - Enable superres for the sequence |
301 | | // enable per-frame superres flag |
302 | | uint8_t enable_cdef; // To turn on/off CDEF |
303 | | uint8_t enable_restoration; // To turn on/off loop restoration |
304 | | BITSTREAM_PROFILE profile; |
305 | | |
306 | | // Color config. |
307 | | aom_bit_depth_t bit_depth; // AOM_BITS_8 in profile 0 or 1, |
308 | | // AOM_BITS_10 or AOM_BITS_12 in profile 2 or 3. |
309 | | uint8_t use_highbitdepth; // If true, we need to use 16bit frame buffers. |
310 | | uint8_t monochrome; // Monochrome video |
311 | | aom_color_primaries_t color_primaries; |
312 | | aom_transfer_characteristics_t transfer_characteristics; |
313 | | aom_matrix_coefficients_t matrix_coefficients; |
314 | | int color_range; |
315 | | int subsampling_x; // Chroma subsampling for x |
316 | | int subsampling_y; // Chroma subsampling for y |
317 | | aom_chroma_sample_position_t chroma_sample_position; |
318 | | uint8_t separate_uv_delta_q; |
319 | | uint8_t film_grain_params_present; |
320 | | |
321 | | // Operating point info. |
322 | | int operating_points_cnt_minus_1; |
323 | | int operating_point_idc[MAX_NUM_OPERATING_POINTS]; |
324 | | // True if operating_point_idc[op] is not equal to 0 for any value of op from |
325 | | // 0 to operating_points_cnt_minus_1. |
326 | | bool has_nonzero_operating_point_idc; |
327 | | int timing_info_present; |
328 | | aom_timing_info_t timing_info; |
329 | | uint8_t decoder_model_info_present_flag; |
330 | | aom_dec_model_info_t decoder_model_info; |
331 | | uint8_t display_model_info_present_flag; |
332 | | AV1_LEVEL seq_level_idx[MAX_NUM_OPERATING_POINTS]; |
333 | | uint8_t tier[MAX_NUM_OPERATING_POINTS]; // seq_tier in spec. One bit: 0 or 1. |
334 | | |
335 | | // IMPORTANT: the op_params member must be at the end of the struct so that |
336 | | // are_seq_headers_consistent() can be implemented with a memcmp() call. |
337 | | // TODO(urvang): We probably don't need the +1 here. |
338 | | aom_dec_model_op_parameters_t op_params[MAX_NUM_OPERATING_POINTS + 1]; |
339 | | } SequenceHeader; |
340 | | |
341 | | typedef struct { |
342 | | int skip_mode_allowed; |
343 | | int skip_mode_flag; |
344 | | int ref_frame_idx_0; |
345 | | int ref_frame_idx_1; |
346 | | } SkipModeInfo; |
347 | | |
348 | | typedef struct { |
349 | | FRAME_TYPE frame_type; |
350 | | REFERENCE_MODE reference_mode; |
351 | | |
352 | | unsigned int order_hint; |
353 | | unsigned int display_order_hint; |
354 | | // Frame's level within the hierarchical structure. |
355 | | unsigned int pyramid_level; |
356 | | unsigned int frame_number; |
357 | | SkipModeInfo skip_mode_info; |
358 | | int refresh_frame_flags; // Which ref frames are overwritten by this frame |
359 | | int frame_refs_short_signaling; |
360 | | } CurrentFrame; |
361 | | |
362 | | /*!\endcond */ |
363 | | |
364 | | /*! |
365 | | * \brief Frame level features. |
366 | | */ |
367 | | typedef struct { |
368 | | /*! |
369 | | * If true, CDF update in the symbol encoding/decoding process is disabled. |
370 | | */ |
371 | | bool disable_cdf_update; |
372 | | /*! |
373 | | * If true, motion vectors are specified to eighth pel precision; and |
374 | | * if false, motion vectors are specified to quarter pel precision. |
375 | | */ |
376 | | bool allow_high_precision_mv; |
377 | | /*! |
378 | | * If true, force integer motion vectors; if false, use the default. |
379 | | */ |
380 | | bool cur_frame_force_integer_mv; |
381 | | /*! |
382 | | * If true, palette tool and/or intra block copy tools may be used. |
383 | | */ |
384 | | bool allow_screen_content_tools; |
385 | | bool allow_intrabc; /*!< If true, intra block copy tool may be used. */ |
386 | | bool allow_warped_motion; /*!< If true, frame may use warped motion mode. */ |
387 | | /*! |
388 | | * If true, using previous frames' motion vectors for prediction is allowed. |
389 | | */ |
390 | | bool allow_ref_frame_mvs; |
391 | | /*! |
392 | | * If true, frame is fully lossless at coded resolution. |
393 | | * */ |
394 | | bool coded_lossless; |
395 | | /*! |
396 | | * If true, frame is fully lossless at upscaled resolution. |
397 | | */ |
398 | | bool all_lossless; |
399 | | /*! |
400 | | * If true, the frame is restricted to a reduced subset of the full set of |
401 | | * transform types. |
402 | | */ |
403 | | bool reduced_tx_set_used; |
404 | | /*! |
405 | | * If true, error resilient mode is enabled. |
406 | | * Note: Error resilient mode allows the syntax of a frame to be parsed |
407 | | * independently of previously decoded frames. |
408 | | */ |
409 | | bool error_resilient_mode; |
410 | | /*! |
411 | | * If false, only MOTION_MODE that may be used is SIMPLE_TRANSLATION; |
412 | | * if true, all MOTION_MODES may be used. |
413 | | */ |
414 | | bool switchable_motion_mode; |
415 | | TX_MODE tx_mode; /*!< Transform mode at frame level. */ |
416 | | InterpFilter interp_filter; /*!< Interpolation filter at frame level. */ |
417 | | /*! |
418 | | * The reference frame that contains the CDF values and other state that |
419 | | * should be loaded at the start of the frame. |
420 | | */ |
421 | | int primary_ref_frame; |
422 | | /*! |
423 | | * Byte alignment of the planes in the reference buffers. |
424 | | */ |
425 | | int byte_alignment; |
426 | | /*! |
427 | | * Flag signaling how frame contexts should be updated at the end of |
428 | | * a frame decode. |
429 | | */ |
430 | | REFRESH_FRAME_CONTEXT_MODE refresh_frame_context; |
431 | | } FeatureFlags; |
432 | | |
433 | | /*! |
434 | | * \brief Params related to tiles. |
435 | | */ |
436 | | typedef struct CommonTileParams { |
437 | | int cols; /*!< number of tile columns that frame is divided into */ |
438 | | int rows; /*!< number of tile rows that frame is divided into */ |
439 | | int max_width_sb; /*!< maximum tile width in superblock units. */ |
440 | | int max_height_sb; /*!< maximum tile height in superblock units. */ |
441 | | |
442 | | /*! |
443 | | * Min width of non-rightmost tile in MI units. Only valid if cols > 1. |
444 | | */ |
445 | | int min_inner_width; |
446 | | |
447 | | /*! |
448 | | * If true, tiles are uniformly spaced with power-of-two number of rows and |
449 | | * columns. |
450 | | * If false, tiles have explicitly configured widths and heights. |
451 | | */ |
452 | | int uniform_spacing; |
453 | | |
454 | | /** |
455 | | * \name Members only valid when uniform_spacing == 1 |
456 | | */ |
457 | | /**@{*/ |
458 | | int log2_cols; /*!< log2 of 'cols'. */ |
459 | | int log2_rows; /*!< log2 of 'rows'. */ |
460 | | int width; /*!< tile width in MI units */ |
461 | | int height; /*!< tile height in MI units */ |
462 | | /**@}*/ |
463 | | |
464 | | /*! |
465 | | * Min num of tile columns possible based on 'max_width_sb' and frame width. |
466 | | */ |
467 | | int min_log2_cols; |
468 | | /*! |
469 | | * Min num of tile rows possible based on 'max_height_sb' and frame height. |
470 | | */ |
471 | | int min_log2_rows; |
472 | | /*! |
473 | | * Max num of tile columns possible based on frame width. |
474 | | */ |
475 | | int max_log2_cols; |
476 | | /*! |
477 | | * Max num of tile rows possible based on frame height. |
478 | | */ |
479 | | int max_log2_rows; |
480 | | /*! |
481 | | * log2 of min number of tiles (same as min_log2_cols + min_log2_rows). |
482 | | */ |
483 | | int min_log2; |
484 | | /*! |
485 | | * col_start_sb[i] is the start position of tile column i in superblock units. |
486 | | * valid for 0 <= i <= cols |
487 | | */ |
488 | | int col_start_sb[MAX_TILE_COLS + 1]; |
489 | | /*! |
490 | | * row_start_sb[i] is the start position of tile row i in superblock units. |
491 | | * valid for 0 <= i <= rows |
492 | | */ |
493 | | int row_start_sb[MAX_TILE_ROWS + 1]; |
494 | | /*! |
495 | | * If true, we are using large scale tile mode. |
496 | | */ |
497 | | unsigned int large_scale; |
498 | | /*! |
499 | | * Only relevant when large_scale == 1. |
500 | | * If true, the independent decoding of a single tile or a section of a frame |
501 | | * is allowed. |
502 | | */ |
503 | | unsigned int single_tile_decoding; |
504 | | } CommonTileParams; |
505 | | |
506 | | typedef struct CommonModeInfoParams CommonModeInfoParams; |
507 | | /*! |
508 | | * \brief Params related to MB_MODE_INFO arrays and related info. |
509 | | */ |
510 | | struct CommonModeInfoParams { |
511 | | /*! |
512 | | * Number of rows in the frame in 16 pixel units. |
513 | | * This is computed from frame height aligned to a multiple of 8. |
514 | | */ |
515 | | int mb_rows; |
516 | | /*! |
517 | | * Number of cols in the frame in 16 pixel units. |
518 | | * This is computed from frame width aligned to a multiple of 8. |
519 | | */ |
520 | | int mb_cols; |
521 | | |
522 | | /*! |
523 | | * Total MBs = mb_rows * mb_cols. |
524 | | */ |
525 | | int MBs; |
526 | | |
527 | | /*! |
528 | | * Number of rows in the frame in 4 pixel (MB_MODE_INFO) units. |
529 | | * This is computed from frame height aligned to a multiple of 8. |
530 | | */ |
531 | | int mi_rows; |
532 | | /*! |
533 | | * Number of cols in the frame in 4 pixel (MB_MODE_INFO) units. |
534 | | * This is computed from frame width aligned to a multiple of 8. |
535 | | */ |
536 | | int mi_cols; |
537 | | |
538 | | /*! |
539 | | * An array of MB_MODE_INFO structs for every 'mi_alloc_bsize' sized block |
540 | | * in the frame. |
541 | | * Note: This array should be treated like a scratch memory, and should NOT be |
542 | | * accessed directly, in most cases. Please use 'mi_grid_base' array instead. |
543 | | */ |
544 | | MB_MODE_INFO *mi_alloc; |
545 | | /*! |
546 | | * Number of allocated elements in 'mi_alloc'. |
547 | | */ |
548 | | int mi_alloc_size; |
549 | | /*! |
550 | | * Stride for 'mi_alloc' array. |
551 | | */ |
552 | | int mi_alloc_stride; |
553 | | /*! |
554 | | * The minimum block size that each element in 'mi_alloc' can correspond to. |
555 | | * For decoder, this is always BLOCK_4X4. |
556 | | * For encoder, this is BLOCK_8X8 for resolution >= 4k case or REALTIME mode |
557 | | * case. Otherwise, this is BLOCK_4X4. |
558 | | */ |
559 | | BLOCK_SIZE mi_alloc_bsize; |
560 | | |
561 | | /*! |
562 | | * Grid of pointers to 4x4 MB_MODE_INFO structs allocated in 'mi_alloc'. |
563 | | * It's possible that: |
564 | | * - Multiple pointers in the grid point to the same element in 'mi_alloc' |
565 | | * (for example, for all 4x4 blocks that belong to the same partition block). |
566 | | * - Some pointers can be NULL (for example, for blocks outside visible area). |
567 | | */ |
568 | | MB_MODE_INFO **mi_grid_base; |
569 | | /*! |
570 | | * Number of allocated elements in 'mi_grid_base' (and 'tx_type_map' also). |
571 | | */ |
572 | | int mi_grid_size; |
573 | | /*! |
574 | | * Stride for 'mi_grid_base' (and 'tx_type_map' also). |
575 | | */ |
576 | | int mi_stride; |
577 | | |
578 | | /*! |
579 | | * An array of tx types for each 4x4 block in the frame. |
580 | | * Number of allocated elements is same as 'mi_grid_size', and stride is |
581 | | * same as 'mi_grid_size'. So, indexing into 'tx_type_map' is same as that of |
582 | | * 'mi_grid_base'. |
583 | | */ |
584 | | TX_TYPE *tx_type_map; |
585 | | |
586 | | /** |
587 | | * \name Function pointers to allow separate logic for encoder and decoder. |
588 | | */ |
589 | | /**@{*/ |
590 | | /*! |
591 | | * Free the memory allocated to arrays in 'mi_params'. |
592 | | * \param[in,out] mi_params object containing common mode info parameters |
593 | | */ |
594 | | void (*free_mi)(struct CommonModeInfoParams *mi_params); |
595 | | /*! |
596 | | * Initialize / reset appropriate arrays in 'mi_params'. |
597 | | * \param[in,out] mi_params object containing common mode info parameters |
598 | | */ |
599 | | void (*setup_mi)(struct CommonModeInfoParams *mi_params); |
600 | | /*! |
601 | | * Allocate required memory for arrays in 'mi_params'. |
602 | | * \param[in,out] mi_params object containing common mode info |
603 | | * parameters |
604 | | * \param width frame width |
605 | | * \param height frame height |
606 | | * \param min_partition_size minimum partition size allowed while |
607 | | * encoding |
608 | | */ |
609 | | void (*set_mb_mi)(struct CommonModeInfoParams *mi_params, int width, |
610 | | int height, BLOCK_SIZE min_partition_size); |
611 | | /**@}*/ |
612 | | }; |
613 | | |
614 | | typedef struct CommonQuantParams CommonQuantParams; |
615 | | /*! |
616 | | * \brief Parameters related to quantization at the frame level. |
617 | | */ |
618 | | struct CommonQuantParams { |
619 | | /*! |
620 | | * Base qindex of the frame in the range 0 to 255. |
621 | | */ |
622 | | int base_qindex; |
623 | | |
624 | | /*! |
625 | | * Sharpness adjustment in the quantization process. |
626 | | */ |
627 | | int sharpness; |
628 | | |
629 | | /*! |
630 | | * Delta of qindex (from base_qindex) for Y plane DC coefficient. |
631 | | * Note: y_ac_delta_q is implicitly 0. |
632 | | */ |
633 | | int y_dc_delta_q; |
634 | | |
635 | | /*! |
636 | | * Delta of qindex (from base_qindex) for U plane DC coefficients. |
637 | | */ |
638 | | int u_dc_delta_q; |
639 | | /*! |
640 | | * Delta of qindex (from base_qindex) for U plane AC coefficients. |
641 | | */ |
642 | | int v_dc_delta_q; |
643 | | |
644 | | /*! |
645 | | * Delta of qindex (from base_qindex) for V plane DC coefficients. |
646 | | * Same as those for U plane if cm->seq_params->separate_uv_delta_q == 0. |
647 | | */ |
648 | | int u_ac_delta_q; |
649 | | /*! |
650 | | * Delta of qindex (from base_qindex) for V plane AC coefficients. |
651 | | * Same as those for U plane if cm->seq_params->separate_uv_delta_q == 0. |
652 | | */ |
653 | | int v_ac_delta_q; |
654 | | |
655 | | /* |
656 | | * Note: The qindex per superblock may have a delta from the qindex obtained |
657 | | * at frame level from parameters above, based on 'cm->delta_q_info'. |
658 | | */ |
659 | | |
660 | | /** |
661 | | * \name True dequantizers. |
662 | | * The dequantizers below are true dequantizers used only in the |
663 | | * dequantization process. They have the same coefficient |
664 | | * shift/scale as TX. |
665 | | */ |
666 | | /**@{*/ |
667 | | int16_t y_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for Y plane */ |
668 | | int16_t u_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for U plane */ |
669 | | int16_t v_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for V plane */ |
670 | | /**@}*/ |
671 | | |
672 | | /** |
673 | | * \name Global quantization matrix tables. |
674 | | */ |
675 | | /**@{*/ |
676 | | /*! |
677 | | * Global dequantization matrix table. |
678 | | */ |
679 | | const qm_val_t *giqmatrix[NUM_QM_LEVELS][3][TX_SIZES_ALL]; |
680 | | /*! |
681 | | * Global quantization matrix table. |
682 | | */ |
683 | | const qm_val_t *gqmatrix[NUM_QM_LEVELS][3][TX_SIZES_ALL]; |
684 | | /**@}*/ |
685 | | |
686 | | /** |
687 | | * \name Local dequantization matrix tables for each frame. |
688 | | */ |
689 | | /**@{*/ |
690 | | /*! |
691 | | * Local dequant matrix for Y plane. |
692 | | */ |
693 | | const qm_val_t *y_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL]; |
694 | | /*! |
695 | | * Local dequant matrix for U plane. |
696 | | */ |
697 | | const qm_val_t *u_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL]; |
698 | | /*! |
699 | | * Local dequant matrix for V plane. |
700 | | */ |
701 | | const qm_val_t *v_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL]; |
702 | | /**@}*/ |
703 | | |
704 | | /*! |
705 | | * Flag indicating whether quantization matrices are being used: |
706 | | * - If true, qm_level_y, qm_level_u and qm_level_v indicate the level |
707 | | * indices to be used to access appropriate global quant matrix tables. |
708 | | * - If false, we implicitly use level index 'NUM_QM_LEVELS - 1'. |
709 | | */ |
710 | | bool using_qmatrix; |
711 | | /** |
712 | | * \name Valid only when using_qmatrix == true |
713 | | * Indicate the level indices to be used to access appropriate global quant |
714 | | * matrix tables. |
715 | | */ |
716 | | /**@{*/ |
717 | | int qmatrix_level_y; /*!< Level index for Y plane */ |
718 | | int qmatrix_level_u; /*!< Level index for U plane */ |
719 | | int qmatrix_level_v; /*!< Level index for V plane */ |
720 | | /**@}*/ |
721 | | }; |
722 | | |
723 | | typedef struct CommonContexts CommonContexts; |
724 | | /*! |
725 | | * \brief Contexts used for transmitting various symbols in the bitstream. |
726 | | */ |
727 | | struct CommonContexts { |
728 | | /*! |
729 | | * Context used by 'FRAME_CONTEXT.partition_cdf' to transmit partition type. |
730 | | * partition[i][j] is the context for ith tile row, jth mi_col. |
731 | | */ |
732 | | PARTITION_CONTEXT **partition; |
733 | | |
734 | | /*! |
735 | | * Context used to derive context for multiple symbols: |
736 | | * - 'TXB_CTX.txb_skip_ctx' used by 'FRAME_CONTEXT.txb_skip_cdf' to transmit |
737 | | * to transmit skip_txfm flag. |
738 | | * - 'TXB_CTX.dc_sign_ctx' used by 'FRAME_CONTEXT.dc_sign_cdf' to transmit |
739 | | * sign. |
740 | | * entropy[i][j][k] is the context for ith plane, jth tile row, kth mi_col. |
741 | | */ |
742 | | ENTROPY_CONTEXT **entropy[MAX_MB_PLANE]; |
743 | | |
744 | | /*! |
745 | | * Context used to derive context for 'FRAME_CONTEXT.txfm_partition_cdf' to |
746 | | * transmit 'is_split' flag to indicate if this transform block should be |
747 | | * split into smaller sub-blocks. |
748 | | * txfm[i][j] is the context for ith tile row, jth mi_col. |
749 | | */ |
750 | | TXFM_CONTEXT **txfm; |
751 | | |
752 | | /*! |
753 | | * Dimensions that were used to allocate the arrays above. |
754 | | * If these dimensions change, the arrays may have to be re-allocated. |
755 | | */ |
756 | | int num_planes; /*!< Corresponds to av1_num_planes(cm) */ |
757 | | int num_tile_rows; /*!< Corresponds to cm->tiles.row */ |
758 | | int num_mi_cols; /*!< Corresponds to cm->mi_params.mi_cols */ |
759 | | }; |
760 | | |
761 | | /*! |
762 | | * \brief Top level common structure used by both encoder and decoder. |
763 | | */ |
764 | | typedef struct AV1Common { |
765 | | /*! |
766 | | * Information about the current frame that is being coded. |
767 | | */ |
768 | | CurrentFrame current_frame; |
769 | | /*! |
770 | | * Code and details about current error status. |
771 | | */ |
772 | | struct aom_internal_error_info *error; |
773 | | |
774 | | /*! |
775 | | * AV1 allows two types of frame scaling operations: |
776 | | * 1. Frame super-resolution: that allows coding a frame at lower resolution |
777 | | * and after decoding the frame, normatively scales and restores the frame -- |
778 | | * inside the coding loop. |
779 | | * 2. Frame resize: that allows coding frame at lower/higher resolution, and |
780 | | * then non-normatively upscale the frame at the time of rendering -- outside |
781 | | * the coding loop. |
782 | | * Hence, the need for 3 types of dimensions. |
783 | | */ |
784 | | |
785 | | /** |
786 | | * \name Coded frame dimensions. |
787 | | */ |
788 | | /**@{*/ |
789 | | int width; /*!< Coded frame width */ |
790 | | int height; /*!< Coded frame height */ |
791 | | /**@}*/ |
792 | | |
793 | | /** |
794 | | * \name Rendered frame dimensions. |
795 | | * Dimensions after applying both super-resolution and resize to the coded |
796 | | * frame. Different from coded dimensions if super-resolution and/or resize |
797 | | * are being used for this frame. |
798 | | */ |
799 | | /**@{*/ |
800 | | int render_width; /*!< Rendered frame width */ |
801 | | int render_height; /*!< Rendered frame height */ |
802 | | /**@}*/ |
803 | | |
804 | | /** |
805 | | * \name Super-resolved frame dimensions. |
806 | | * Frame dimensions after applying super-resolution to the coded frame (if |
807 | | * present), but before applying resize. |
808 | | * Larger than the coded dimensions if super-resolution is being used for |
809 | | * this frame. |
810 | | * Different from rendered dimensions if resize is being used for this frame. |
811 | | */ |
812 | | /**@{*/ |
813 | | int superres_upscaled_width; /*!< Super-resolved frame width */ |
814 | | int superres_upscaled_height; /*!< Super-resolved frame height */ |
815 | | /**@}*/ |
816 | | |
817 | | /*! |
818 | | * The denominator of the superres scale used by this frame. |
819 | | * Note: The numerator is fixed to be SCALE_NUMERATOR. |
820 | | */ |
821 | | uint8_t superres_scale_denominator; |
822 | | |
823 | | /*! |
824 | | * buffer_removal_times[op_num] specifies the frame removal time in units of |
825 | | * DecCT clock ticks counted from the removal time of the last random access |
826 | | * point for operating point op_num. |
827 | | * TODO(urvang): We probably don't need the +1 here. |
828 | | */ |
829 | | uint32_t buffer_removal_times[MAX_NUM_OPERATING_POINTS + 1]; |
830 | | /*! |
831 | | * Presentation time of the frame in clock ticks DispCT counted from the |
832 | | * removal time of the last random access point for the operating point that |
833 | | * is being decoded. |
834 | | */ |
835 | | uint32_t frame_presentation_time; |
836 | | |
837 | | /*! |
838 | | * Buffer where previous frame is stored. |
839 | | */ |
840 | | RefCntBuffer *prev_frame; |
841 | | |
842 | | /*! |
843 | | * Buffer into which the current frame will be stored and other related info. |
844 | | * TODO(hkuang): Combine this with cur_buf in macroblockd. |
845 | | */ |
846 | | RefCntBuffer *cur_frame; |
847 | | |
848 | | /*! |
849 | | * For encoder, we have a two-level mapping from reference frame type to the |
850 | | * corresponding buffer in the buffer pool: |
851 | | * * 'remapped_ref_idx[i - 1]' maps reference type 'i' (range: LAST_FRAME ... |
852 | | * EXTREF_FRAME) to a remapped index 'j' (in range: 0 ... REF_FRAMES - 1) |
853 | | * * Later, 'cm->ref_frame_map[j]' maps the remapped index 'j' to a pointer to |
854 | | * the reference counted buffer structure RefCntBuffer, taken from the buffer |
855 | | * pool cm->buffer_pool->frame_bufs. |
856 | | * |
857 | | * LAST_FRAME, ..., EXTREF_FRAME |
858 | | * | | |
859 | | * v v |
860 | | * remapped_ref_idx[LAST_FRAME - 1], ..., remapped_ref_idx[EXTREF_FRAME - 1] |
861 | | * | | |
862 | | * v v |
863 | | * ref_frame_map[], ..., ref_frame_map[] |
864 | | * |
865 | | * Note: INTRA_FRAME always refers to the current frame, so there's no need to |
866 | | * have a remapped index for the same. |
867 | | */ |
868 | | int remapped_ref_idx[REF_FRAMES]; |
869 | | |
870 | | /*! |
871 | | * Scale of the current frame with respect to itself. |
872 | | * This is currently used for intra block copy, which behaves like an inter |
873 | | * prediction mode, where the reference frame is the current frame itself. |
874 | | */ |
875 | | struct scale_factors sf_identity; |
876 | | |
877 | | /*! |
878 | | * Scale factors of the reference frame with respect to the current frame. |
879 | | * This is required for generating inter prediction and will be non-identity |
880 | | * for a reference frame, if it has different dimensions than the coded |
881 | | * dimensions of the current frame. |
882 | | */ |
883 | | struct scale_factors ref_scale_factors[REF_FRAMES]; |
884 | | |
885 | | /*! |
886 | | * For decoder, ref_frame_map[i] maps reference type 'i' to a pointer to |
887 | | * the buffer in the buffer pool 'cm->buffer_pool.frame_bufs'. |
888 | | * For encoder, ref_frame_map[j] (where j = remapped_ref_idx[i]) maps |
889 | | * remapped reference index 'j' (that is, original reference type 'i') to |
890 | | * a pointer to the buffer in the buffer pool 'cm->buffer_pool.frame_bufs'. |
891 | | */ |
892 | | RefCntBuffer *ref_frame_map[REF_FRAMES]; |
893 | | |
894 | | /*! |
895 | | * If true, this frame is actually shown after decoding. |
896 | | * If false, this frame is coded in the bitstream, but not shown. It is only |
897 | | * used as a reference for other frames coded later. |
898 | | */ |
899 | | int show_frame; |
900 | | |
901 | | /*! |
902 | | * If true, this frame can be used as a show-existing frame for other frames |
903 | | * coded later. |
904 | | * When 'show_frame' is true, this is always true for all non-keyframes. |
905 | | * When 'show_frame' is false, this value is transmitted in the bitstream. |
906 | | */ |
907 | | int showable_frame; |
908 | | |
909 | | /*! |
910 | | * If true, show an existing frame coded before, instead of actually coding a |
911 | | * frame. The existing frame comes from one of the existing reference buffers, |
912 | | * as signaled in the bitstream. |
913 | | */ |
914 | | int show_existing_frame; |
915 | | |
916 | | /*! |
917 | | * Whether some features are allowed or not. |
918 | | */ |
919 | | FeatureFlags features; |
920 | | |
921 | | /*! |
922 | | * Params related to MB_MODE_INFO arrays and related info. |
923 | | */ |
924 | | CommonModeInfoParams mi_params; |
925 | | |
926 | | #if CONFIG_ENTROPY_STATS |
927 | | /*! |
928 | | * Context type used by token CDFs, in the range 0 .. (TOKEN_CDF_Q_CTXS - 1). |
929 | | */ |
930 | | int coef_cdf_category; |
931 | | #endif // CONFIG_ENTROPY_STATS |
932 | | |
933 | | /*! |
934 | | * Quantization params. |
935 | | */ |
936 | | CommonQuantParams quant_params; |
937 | | |
938 | | /*! |
939 | | * Segmentation info for current frame. |
940 | | */ |
941 | | struct segmentation seg; |
942 | | |
943 | | /*! |
944 | | * Segmentation map for previous frame. |
945 | | */ |
946 | | uint8_t *last_frame_seg_map; |
947 | | |
948 | | /** |
949 | | * \name Deblocking filter parameters. |
950 | | */ |
951 | | /**@{*/ |
952 | | loop_filter_info_n lf_info; /*!< Loop filter info */ |
953 | | struct loopfilter lf; /*!< Loop filter parameters */ |
954 | | /**@}*/ |
955 | | |
956 | | /** |
957 | | * \name Loop Restoration filter parameters. |
958 | | */ |
959 | | /**@{*/ |
960 | | RestorationInfo rst_info[MAX_MB_PLANE]; /*!< Loop Restoration filter info */ |
961 | | int32_t *rst_tmpbuf; /*!< Scratch buffer for self-guided restoration */ |
962 | | RestorationLineBuffers *rlbs; /*!< Line buffers needed by loop restoration */ |
963 | | YV12_BUFFER_CONFIG rst_frame; /*!< Stores the output of loop restoration */ |
964 | | /**@}*/ |
965 | | |
966 | | /*! |
967 | | * CDEF (Constrained Directional Enhancement Filter) parameters. |
968 | | */ |
969 | | CdefInfo cdef_info; |
970 | | |
971 | | /*! |
972 | | * Parameters for film grain synthesis. |
973 | | */ |
974 | | aom_film_grain_t film_grain_params; |
975 | | |
976 | | /*! |
977 | | * Parameters for delta quantization and delta loop filter level. |
978 | | */ |
979 | | DeltaQInfo delta_q_info; |
980 | | |
981 | | /*! |
982 | | * Global motion parameters for each reference frame. |
983 | | */ |
984 | | WarpedMotionParams global_motion[REF_FRAMES]; |
985 | | |
986 | | /*! |
987 | | * Elements part of the sequence header, that are applicable for all the |
988 | | * frames in the video. |
989 | | */ |
990 | | SequenceHeader *seq_params; |
991 | | |
992 | | /*! |
993 | | * Current CDFs of all the symbols for the current frame. |
994 | | */ |
995 | | FRAME_CONTEXT *fc; |
996 | | /*! |
997 | | * Default CDFs used when features.primary_ref_frame = PRIMARY_REF_NONE |
998 | | * (e.g. for a keyframe). These default CDFs are defined by the bitstream and |
999 | | * copied from default CDF tables for each symbol. |
1000 | | */ |
1001 | | FRAME_CONTEXT *default_frame_context; |
1002 | | |
1003 | | /*! |
1004 | | * Parameters related to tiling. |
1005 | | */ |
1006 | | CommonTileParams tiles; |
1007 | | |
1008 | | /*! |
1009 | | * External BufferPool passed from outside. |
1010 | | */ |
1011 | | BufferPool *buffer_pool; |
1012 | | |
1013 | | /*! |
1014 | | * Above context buffers and their sizes. |
1015 | | * Note: above contexts are allocated in this struct, as their size is |
1016 | | * dependent on frame width, while left contexts are declared and allocated in |
1017 | | * MACROBLOCKD struct, as they have a fixed size. |
1018 | | */ |
1019 | | CommonContexts above_contexts; |
1020 | | |
1021 | | /** |
1022 | | * \name Signaled when cm->seq_params->frame_id_numbers_present_flag == 1 |
1023 | | */ |
1024 | | /**@{*/ |
1025 | | int current_frame_id; /*!< frame ID for the current frame. */ |
1026 | | int ref_frame_id[REF_FRAMES]; /*!< frame IDs for the reference frames. */ |
1027 | | /**@}*/ |
1028 | | |
1029 | | /*! |
1030 | | * Motion vectors provided by motion field estimation. |
1031 | | * tpl_mvs[row * stride + col] stores MV for block at [mi_row, mi_col] where: |
1032 | | * mi_row = 2 * row, |
1033 | | * mi_col = 2 * col, and |
1034 | | * stride = cm->mi_params.mi_stride / 2 |
1035 | | */ |
1036 | | TPL_MV_REF *tpl_mvs; |
1037 | | /*! |
1038 | | * Allocated size of 'tpl_mvs' array. Refer to 'ensure_mv_buffer()' function. |
1039 | | */ |
1040 | | int tpl_mvs_mem_size; |
1041 | | /*! |
1042 | | * ref_frame_sign_bias[k] is 1 if relative distance between reference 'k' and |
1043 | | * current frame is positive; and 0 otherwise. |
1044 | | */ |
1045 | | int ref_frame_sign_bias[REF_FRAMES]; |
1046 | | /*! |
1047 | | * ref_frame_side[k] is 1 if relative distance between reference 'k' and |
1048 | | * current frame is positive, -1 if relative distance is 0; and 0 otherwise. |
1049 | | * TODO(jingning): This can be combined with sign_bias later. |
1050 | | */ |
1051 | | int8_t ref_frame_side[REF_FRAMES]; |
1052 | | |
1053 | | /*! |
1054 | | * Temporal layer ID of this frame |
1055 | | * (in the range 0 ... (number_temporal_layers - 1)). |
1056 | | */ |
1057 | | int temporal_layer_id; |
1058 | | |
1059 | | /*! |
1060 | | * Spatial layer ID of this frame |
1061 | | * (in the range 0 ... (number_spatial_layers - 1)). |
1062 | | */ |
1063 | | int spatial_layer_id; |
1064 | | |
1065 | | #if TXCOEFF_TIMER |
1066 | | int64_t cum_txcoeff_timer; |
1067 | | int64_t txcoeff_timer; |
1068 | | int txb_count; |
1069 | | #endif // TXCOEFF_TIMER |
1070 | | |
1071 | | #if TXCOEFF_COST_TIMER |
1072 | | int64_t cum_txcoeff_cost_timer; |
1073 | | int64_t txcoeff_cost_timer; |
1074 | | int64_t txcoeff_cost_count; |
1075 | | #endif // TXCOEFF_COST_TIMER |
1076 | | } AV1_COMMON; |
1077 | | |
1078 | | /*!\cond */ |
1079 | | |
1080 | | // TODO(hkuang): Don't need to lock the whole pool after implementing atomic |
1081 | | // frame reference count. |
1082 | 1.76M | static void lock_buffer_pool(BufferPool *const pool) { |
1083 | 1.76M | #if CONFIG_MULTITHREAD |
1084 | 1.76M | pthread_mutex_lock(&pool->pool_mutex); |
1085 | | #else |
1086 | | (void)pool; |
1087 | | #endif |
1088 | 1.76M | } av1_dx_iface.c:lock_buffer_pool Line | Count | Source | 1082 | 272k | static void lock_buffer_pool(BufferPool *const pool) { | 1083 | 272k | #if CONFIG_MULTITHREAD | 1084 | 272k | pthread_mutex_lock(&pool->pool_mutex); | 1085 | | #else | 1086 | | (void)pool; | 1087 | | #endif | 1088 | 272k | } |
decodeframe.c:lock_buffer_pool Line | Count | Source | 1082 | 854k | static void lock_buffer_pool(BufferPool *const pool) { | 1083 | 854k | #if CONFIG_MULTITHREAD | 1084 | 854k | pthread_mutex_lock(&pool->pool_mutex); | 1085 | | #else | 1086 | | (void)pool; | 1087 | | #endif | 1088 | 854k | } |
Unexecuted instantiation: decodemv.c:lock_buffer_pool decoder.c:lock_buffer_pool Line | Count | Source | 1082 | 623k | static void lock_buffer_pool(BufferPool *const pool) { | 1083 | 623k | #if CONFIG_MULTITHREAD | 1084 | 623k | pthread_mutex_lock(&pool->pool_mutex); | 1085 | | #else | 1086 | | (void)pool; | 1087 | | #endif | 1088 | 623k | } |
Unexecuted instantiation: decodetxb.c:lock_buffer_pool Unexecuted instantiation: detokenize.c:lock_buffer_pool Unexecuted instantiation: obu.c:lock_buffer_pool Unexecuted instantiation: alloccommon.c:lock_buffer_pool Unexecuted instantiation: av1_loopfilter.c:lock_buffer_pool Unexecuted instantiation: blockd.c:lock_buffer_pool Unexecuted instantiation: cdef.c:lock_buffer_pool Unexecuted instantiation: cdef_block.c:lock_buffer_pool Unexecuted instantiation: cfl.c:lock_buffer_pool Unexecuted instantiation: convolve.c:lock_buffer_pool Unexecuted instantiation: entropy.c:lock_buffer_pool Unexecuted instantiation: entropymode.c:lock_buffer_pool Unexecuted instantiation: entropymv.c:lock_buffer_pool Unexecuted instantiation: mvref_common.c:lock_buffer_pool Unexecuted instantiation: pred_common.c:lock_buffer_pool Unexecuted instantiation: quant_common.c:lock_buffer_pool Unexecuted instantiation: reconinter.c:lock_buffer_pool Unexecuted instantiation: reconintra.c:lock_buffer_pool resize.c:lock_buffer_pool Line | Count | Source | 1082 | 9.88k | static void lock_buffer_pool(BufferPool *const pool) { | 1083 | 9.88k | #if CONFIG_MULTITHREAD | 1084 | 9.88k | pthread_mutex_lock(&pool->pool_mutex); | 1085 | | #else | 1086 | | (void)pool; | 1087 | | #endif | 1088 | 9.88k | } |
Unexecuted instantiation: restoration.c:lock_buffer_pool Unexecuted instantiation: scan.c:lock_buffer_pool Unexecuted instantiation: thread_common.c:lock_buffer_pool Unexecuted instantiation: tile_common.c:lock_buffer_pool Unexecuted instantiation: txb_common.c:lock_buffer_pool Unexecuted instantiation: warped_motion.c:lock_buffer_pool Unexecuted instantiation: cfl_sse2.c:lock_buffer_pool Unexecuted instantiation: resize_sse2.c:lock_buffer_pool Unexecuted instantiation: cfl_ssse3.c:lock_buffer_pool Unexecuted instantiation: resize_ssse3.c:lock_buffer_pool Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:lock_buffer_pool Unexecuted instantiation: filterintra_sse4.c:lock_buffer_pool Unexecuted instantiation: cfl_avx2.c:lock_buffer_pool Unexecuted instantiation: resize_avx2.c:lock_buffer_pool |
1089 | | |
1090 | 1.76M | static void unlock_buffer_pool(BufferPool *const pool) { |
1091 | 1.76M | #if CONFIG_MULTITHREAD |
1092 | 1.76M | pthread_mutex_unlock(&pool->pool_mutex); |
1093 | | #else |
1094 | | (void)pool; |
1095 | | #endif |
1096 | 1.76M | } av1_dx_iface.c:unlock_buffer_pool Line | Count | Source | 1090 | 272k | static void unlock_buffer_pool(BufferPool *const pool) { | 1091 | 272k | #if CONFIG_MULTITHREAD | 1092 | 272k | pthread_mutex_unlock(&pool->pool_mutex); | 1093 | | #else | 1094 | | (void)pool; | 1095 | | #endif | 1096 | 272k | } |
decodeframe.c:unlock_buffer_pool Line | Count | Source | 1090 | 854k | static void unlock_buffer_pool(BufferPool *const pool) { | 1091 | 854k | #if CONFIG_MULTITHREAD | 1092 | 854k | pthread_mutex_unlock(&pool->pool_mutex); | 1093 | | #else | 1094 | | (void)pool; | 1095 | | #endif | 1096 | 854k | } |
Unexecuted instantiation: decodemv.c:unlock_buffer_pool decoder.c:unlock_buffer_pool Line | Count | Source | 1090 | 623k | static void unlock_buffer_pool(BufferPool *const pool) { | 1091 | 623k | #if CONFIG_MULTITHREAD | 1092 | 623k | pthread_mutex_unlock(&pool->pool_mutex); | 1093 | | #else | 1094 | | (void)pool; | 1095 | | #endif | 1096 | 623k | } |
Unexecuted instantiation: decodetxb.c:unlock_buffer_pool Unexecuted instantiation: detokenize.c:unlock_buffer_pool Unexecuted instantiation: obu.c:unlock_buffer_pool Unexecuted instantiation: alloccommon.c:unlock_buffer_pool Unexecuted instantiation: av1_loopfilter.c:unlock_buffer_pool Unexecuted instantiation: blockd.c:unlock_buffer_pool Unexecuted instantiation: cdef.c:unlock_buffer_pool Unexecuted instantiation: cdef_block.c:unlock_buffer_pool Unexecuted instantiation: cfl.c:unlock_buffer_pool Unexecuted instantiation: convolve.c:unlock_buffer_pool Unexecuted instantiation: entropy.c:unlock_buffer_pool Unexecuted instantiation: entropymode.c:unlock_buffer_pool Unexecuted instantiation: entropymv.c:unlock_buffer_pool Unexecuted instantiation: mvref_common.c:unlock_buffer_pool Unexecuted instantiation: pred_common.c:unlock_buffer_pool Unexecuted instantiation: quant_common.c:unlock_buffer_pool Unexecuted instantiation: reconinter.c:unlock_buffer_pool Unexecuted instantiation: reconintra.c:unlock_buffer_pool resize.c:unlock_buffer_pool Line | Count | Source | 1090 | 9.88k | static void unlock_buffer_pool(BufferPool *const pool) { | 1091 | 9.88k | #if CONFIG_MULTITHREAD | 1092 | 9.88k | pthread_mutex_unlock(&pool->pool_mutex); | 1093 | | #else | 1094 | | (void)pool; | 1095 | | #endif | 1096 | 9.88k | } |
Unexecuted instantiation: restoration.c:unlock_buffer_pool Unexecuted instantiation: scan.c:unlock_buffer_pool Unexecuted instantiation: thread_common.c:unlock_buffer_pool Unexecuted instantiation: tile_common.c:unlock_buffer_pool Unexecuted instantiation: txb_common.c:unlock_buffer_pool Unexecuted instantiation: warped_motion.c:unlock_buffer_pool Unexecuted instantiation: cfl_sse2.c:unlock_buffer_pool Unexecuted instantiation: resize_sse2.c:unlock_buffer_pool Unexecuted instantiation: cfl_ssse3.c:unlock_buffer_pool Unexecuted instantiation: resize_ssse3.c:unlock_buffer_pool Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:unlock_buffer_pool Unexecuted instantiation: filterintra_sse4.c:unlock_buffer_pool Unexecuted instantiation: cfl_avx2.c:unlock_buffer_pool Unexecuted instantiation: resize_avx2.c:unlock_buffer_pool |
1097 | | |
1098 | 357 | static inline YV12_BUFFER_CONFIG *get_ref_frame(AV1_COMMON *cm, int index) { |
1099 | 357 | if (index < 0 || index >= REF_FRAMES) return NULL; |
1100 | 224 | if (cm->ref_frame_map[index] == NULL) return NULL; |
1101 | 41 | return &cm->ref_frame_map[index]->buf; |
1102 | 224 | } Unexecuted instantiation: av1_dx_iface.c:get_ref_frame Unexecuted instantiation: decodeframe.c:get_ref_frame Unexecuted instantiation: decodemv.c:get_ref_frame Line | Count | Source | 1098 | 357 | static inline YV12_BUFFER_CONFIG *get_ref_frame(AV1_COMMON *cm, int index) { | 1099 | 357 | if (index < 0 || index >= REF_FRAMES) return NULL; | 1100 | 224 | if (cm->ref_frame_map[index] == NULL) return NULL; | 1101 | 41 | return &cm->ref_frame_map[index]->buf; | 1102 | 224 | } |
Unexecuted instantiation: decodetxb.c:get_ref_frame Unexecuted instantiation: detokenize.c:get_ref_frame Unexecuted instantiation: obu.c:get_ref_frame Unexecuted instantiation: alloccommon.c:get_ref_frame Unexecuted instantiation: av1_loopfilter.c:get_ref_frame Unexecuted instantiation: blockd.c:get_ref_frame Unexecuted instantiation: cdef.c:get_ref_frame Unexecuted instantiation: cdef_block.c:get_ref_frame Unexecuted instantiation: cfl.c:get_ref_frame Unexecuted instantiation: convolve.c:get_ref_frame Unexecuted instantiation: entropy.c:get_ref_frame Unexecuted instantiation: entropymode.c:get_ref_frame Unexecuted instantiation: entropymv.c:get_ref_frame Unexecuted instantiation: mvref_common.c:get_ref_frame Unexecuted instantiation: pred_common.c:get_ref_frame Unexecuted instantiation: quant_common.c:get_ref_frame Unexecuted instantiation: reconinter.c:get_ref_frame Unexecuted instantiation: reconintra.c:get_ref_frame Unexecuted instantiation: resize.c:get_ref_frame Unexecuted instantiation: restoration.c:get_ref_frame Unexecuted instantiation: scan.c:get_ref_frame Unexecuted instantiation: thread_common.c:get_ref_frame Unexecuted instantiation: tile_common.c:get_ref_frame Unexecuted instantiation: txb_common.c:get_ref_frame Unexecuted instantiation: warped_motion.c:get_ref_frame Unexecuted instantiation: cfl_sse2.c:get_ref_frame Unexecuted instantiation: resize_sse2.c:get_ref_frame Unexecuted instantiation: cfl_ssse3.c:get_ref_frame Unexecuted instantiation: resize_ssse3.c:get_ref_frame Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame Unexecuted instantiation: filterintra_sse4.c:get_ref_frame Unexecuted instantiation: cfl_avx2.c:get_ref_frame Unexecuted instantiation: resize_avx2.c:get_ref_frame |
1103 | | |
1104 | 588k | static inline int get_free_fb(AV1_COMMON *cm) { |
1105 | 588k | RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs; |
1106 | 588k | int i; |
1107 | | |
1108 | 588k | lock_buffer_pool(cm->buffer_pool); |
1109 | 588k | const int num_frame_bufs = cm->buffer_pool->num_frame_bufs; |
1110 | 2.02M | for (i = 0; i < num_frame_bufs; ++i) |
1111 | 2.02M | if (frame_bufs[i].ref_count == 0) break; |
1112 | | |
1113 | 588k | if (i != num_frame_bufs) { |
1114 | 588k | if (frame_bufs[i].buf.use_external_reference_buffers) { |
1115 | | // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the |
1116 | | // external reference buffers. Restore the buffer pointers to point to the |
1117 | | // internally allocated memory. |
1118 | 0 | YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf; |
1119 | 0 | ybf->y_buffer = ybf->store_buf_adr[0]; |
1120 | 0 | ybf->u_buffer = ybf->store_buf_adr[1]; |
1121 | 0 | ybf->v_buffer = ybf->store_buf_adr[2]; |
1122 | 0 | ybf->use_external_reference_buffers = 0; |
1123 | 0 | } |
1124 | | |
1125 | 588k | frame_bufs[i].ref_count = 1; |
1126 | 588k | } else { |
1127 | | // We should never run out of free buffers. If this assertion fails, there |
1128 | | // is a reference leak. |
1129 | 0 | assert(0 && "Ran out of free frame buffers. Likely a reference leak."); |
1130 | | // Reset i to be INVALID_IDX to indicate no free buffer found. |
1131 | 0 | i = INVALID_IDX; |
1132 | 0 | } |
1133 | | |
1134 | 588k | unlock_buffer_pool(cm->buffer_pool); |
1135 | 588k | return i; |
1136 | 588k | } Unexecuted instantiation: av1_dx_iface.c:get_free_fb decodeframe.c:get_free_fb Line | Count | Source | 1104 | 277k | static inline int get_free_fb(AV1_COMMON *cm) { | 1105 | 277k | RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs; | 1106 | 277k | int i; | 1107 | | | 1108 | 277k | lock_buffer_pool(cm->buffer_pool); | 1109 | 277k | const int num_frame_bufs = cm->buffer_pool->num_frame_bufs; | 1110 | 1.45M | for (i = 0; i < num_frame_bufs; ++i) | 1111 | 1.45M | if (frame_bufs[i].ref_count == 0) break; | 1112 | | | 1113 | 277k | if (i != num_frame_bufs) { | 1114 | 277k | if (frame_bufs[i].buf.use_external_reference_buffers) { | 1115 | | // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the | 1116 | | // external reference buffers. Restore the buffer pointers to point to the | 1117 | | // internally allocated memory. | 1118 | 0 | YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf; | 1119 | 0 | ybf->y_buffer = ybf->store_buf_adr[0]; | 1120 | 0 | ybf->u_buffer = ybf->store_buf_adr[1]; | 1121 | 0 | ybf->v_buffer = ybf->store_buf_adr[2]; | 1122 | 0 | ybf->use_external_reference_buffers = 0; | 1123 | 0 | } | 1124 | | | 1125 | 277k | frame_bufs[i].ref_count = 1; | 1126 | 277k | } else { | 1127 | | // We should never run out of free buffers. If this assertion fails, there | 1128 | | // is a reference leak. | 1129 | 0 | assert(0 && "Ran out of free frame buffers. Likely a reference leak."); | 1130 | | // Reset i to be INVALID_IDX to indicate no free buffer found. | 1131 | 0 | i = INVALID_IDX; | 1132 | 0 | } | 1133 | | | 1134 | 277k | unlock_buffer_pool(cm->buffer_pool); | 1135 | 277k | return i; | 1136 | 277k | } |
Unexecuted instantiation: decodemv.c:get_free_fb Line | Count | Source | 1104 | 311k | static inline int get_free_fb(AV1_COMMON *cm) { | 1105 | 311k | RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs; | 1106 | 311k | int i; | 1107 | | | 1108 | 311k | lock_buffer_pool(cm->buffer_pool); | 1109 | 311k | const int num_frame_bufs = cm->buffer_pool->num_frame_bufs; | 1110 | 570k | for (i = 0; i < num_frame_bufs; ++i) | 1111 | 570k | if (frame_bufs[i].ref_count == 0) break; | 1112 | | | 1113 | 311k | if (i != num_frame_bufs) { | 1114 | 311k | if (frame_bufs[i].buf.use_external_reference_buffers) { | 1115 | | // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the | 1116 | | // external reference buffers. Restore the buffer pointers to point to the | 1117 | | // internally allocated memory. | 1118 | 0 | YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf; | 1119 | 0 | ybf->y_buffer = ybf->store_buf_adr[0]; | 1120 | 0 | ybf->u_buffer = ybf->store_buf_adr[1]; | 1121 | 0 | ybf->v_buffer = ybf->store_buf_adr[2]; | 1122 | 0 | ybf->use_external_reference_buffers = 0; | 1123 | 0 | } | 1124 | | | 1125 | 311k | frame_bufs[i].ref_count = 1; | 1126 | 311k | } else { | 1127 | | // We should never run out of free buffers. If this assertion fails, there | 1128 | | // is a reference leak. | 1129 | 0 | assert(0 && "Ran out of free frame buffers. Likely a reference leak."); | 1130 | | // Reset i to be INVALID_IDX to indicate no free buffer found. | 1131 | 0 | i = INVALID_IDX; | 1132 | 0 | } | 1133 | | | 1134 | 311k | unlock_buffer_pool(cm->buffer_pool); | 1135 | 311k | return i; | 1136 | 311k | } |
Unexecuted instantiation: decodetxb.c:get_free_fb Unexecuted instantiation: detokenize.c:get_free_fb Unexecuted instantiation: obu.c:get_free_fb Unexecuted instantiation: alloccommon.c:get_free_fb Unexecuted instantiation: av1_loopfilter.c:get_free_fb Unexecuted instantiation: blockd.c:get_free_fb Unexecuted instantiation: cdef.c:get_free_fb Unexecuted instantiation: cdef_block.c:get_free_fb Unexecuted instantiation: cfl.c:get_free_fb Unexecuted instantiation: convolve.c:get_free_fb Unexecuted instantiation: entropy.c:get_free_fb Unexecuted instantiation: entropymode.c:get_free_fb Unexecuted instantiation: entropymv.c:get_free_fb Unexecuted instantiation: mvref_common.c:get_free_fb Unexecuted instantiation: pred_common.c:get_free_fb Unexecuted instantiation: quant_common.c:get_free_fb Unexecuted instantiation: reconinter.c:get_free_fb Unexecuted instantiation: reconintra.c:get_free_fb Unexecuted instantiation: resize.c:get_free_fb Unexecuted instantiation: restoration.c:get_free_fb Unexecuted instantiation: scan.c:get_free_fb Unexecuted instantiation: thread_common.c:get_free_fb Unexecuted instantiation: tile_common.c:get_free_fb Unexecuted instantiation: txb_common.c:get_free_fb Unexecuted instantiation: warped_motion.c:get_free_fb Unexecuted instantiation: cfl_sse2.c:get_free_fb Unexecuted instantiation: resize_sse2.c:get_free_fb Unexecuted instantiation: cfl_ssse3.c:get_free_fb Unexecuted instantiation: resize_ssse3.c:get_free_fb Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_free_fb Unexecuted instantiation: filterintra_sse4.c:get_free_fb Unexecuted instantiation: cfl_avx2.c:get_free_fb Unexecuted instantiation: resize_avx2.c:get_free_fb |
1137 | | |
1138 | 311k | static inline RefCntBuffer *assign_cur_frame_new_fb(AV1_COMMON *const cm) { |
1139 | | // Release the previously-used frame-buffer |
1140 | 311k | if (cm->cur_frame != NULL) { |
1141 | 0 | --cm->cur_frame->ref_count; |
1142 | 0 | cm->cur_frame = NULL; |
1143 | 0 | } |
1144 | | |
1145 | | // Assign a new framebuffer |
1146 | 311k | const int new_fb_idx = get_free_fb(cm); |
1147 | 311k | if (new_fb_idx == INVALID_IDX) return NULL; |
1148 | | |
1149 | 311k | cm->cur_frame = &cm->buffer_pool->frame_bufs[new_fb_idx]; |
1150 | | #if CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY |
1151 | | aom_invalidate_pyramid(cm->cur_frame->buf.y_pyramid); |
1152 | | av1_invalidate_corner_list(cm->cur_frame->buf.corners); |
1153 | | #endif // CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY |
1154 | 311k | av1_zero(cm->cur_frame->interp_filter_selected); |
1155 | 311k | return cm->cur_frame; |
1156 | 311k | } Unexecuted instantiation: av1_dx_iface.c:assign_cur_frame_new_fb Unexecuted instantiation: decodeframe.c:assign_cur_frame_new_fb Unexecuted instantiation: decodemv.c:assign_cur_frame_new_fb decoder.c:assign_cur_frame_new_fb Line | Count | Source | 1138 | 311k | static inline RefCntBuffer *assign_cur_frame_new_fb(AV1_COMMON *const cm) { | 1139 | | // Release the previously-used frame-buffer | 1140 | 311k | if (cm->cur_frame != NULL) { | 1141 | 0 | --cm->cur_frame->ref_count; | 1142 | 0 | cm->cur_frame = NULL; | 1143 | 0 | } | 1144 | | | 1145 | | // Assign a new framebuffer | 1146 | 311k | const int new_fb_idx = get_free_fb(cm); | 1147 | 311k | if (new_fb_idx == INVALID_IDX) return NULL; | 1148 | | | 1149 | 311k | cm->cur_frame = &cm->buffer_pool->frame_bufs[new_fb_idx]; | 1150 | | #if CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY | 1151 | | aom_invalidate_pyramid(cm->cur_frame->buf.y_pyramid); | 1152 | | av1_invalidate_corner_list(cm->cur_frame->buf.corners); | 1153 | | #endif // CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY | 1154 | 311k | av1_zero(cm->cur_frame->interp_filter_selected); | 1155 | 311k | return cm->cur_frame; | 1156 | 311k | } |
Unexecuted instantiation: decodetxb.c:assign_cur_frame_new_fb Unexecuted instantiation: detokenize.c:assign_cur_frame_new_fb Unexecuted instantiation: obu.c:assign_cur_frame_new_fb Unexecuted instantiation: alloccommon.c:assign_cur_frame_new_fb Unexecuted instantiation: av1_loopfilter.c:assign_cur_frame_new_fb Unexecuted instantiation: blockd.c:assign_cur_frame_new_fb Unexecuted instantiation: cdef.c:assign_cur_frame_new_fb Unexecuted instantiation: cdef_block.c:assign_cur_frame_new_fb Unexecuted instantiation: cfl.c:assign_cur_frame_new_fb Unexecuted instantiation: convolve.c:assign_cur_frame_new_fb Unexecuted instantiation: entropy.c:assign_cur_frame_new_fb Unexecuted instantiation: entropymode.c:assign_cur_frame_new_fb Unexecuted instantiation: entropymv.c:assign_cur_frame_new_fb Unexecuted instantiation: mvref_common.c:assign_cur_frame_new_fb Unexecuted instantiation: pred_common.c:assign_cur_frame_new_fb Unexecuted instantiation: quant_common.c:assign_cur_frame_new_fb Unexecuted instantiation: reconinter.c:assign_cur_frame_new_fb Unexecuted instantiation: reconintra.c:assign_cur_frame_new_fb Unexecuted instantiation: resize.c:assign_cur_frame_new_fb Unexecuted instantiation: restoration.c:assign_cur_frame_new_fb Unexecuted instantiation: scan.c:assign_cur_frame_new_fb Unexecuted instantiation: thread_common.c:assign_cur_frame_new_fb Unexecuted instantiation: tile_common.c:assign_cur_frame_new_fb Unexecuted instantiation: txb_common.c:assign_cur_frame_new_fb Unexecuted instantiation: warped_motion.c:assign_cur_frame_new_fb Unexecuted instantiation: cfl_sse2.c:assign_cur_frame_new_fb Unexecuted instantiation: resize_sse2.c:assign_cur_frame_new_fb Unexecuted instantiation: cfl_ssse3.c:assign_cur_frame_new_fb Unexecuted instantiation: resize_ssse3.c:assign_cur_frame_new_fb Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:assign_cur_frame_new_fb Unexecuted instantiation: filterintra_sse4.c:assign_cur_frame_new_fb Unexecuted instantiation: cfl_avx2.c:assign_cur_frame_new_fb Unexecuted instantiation: resize_avx2.c:assign_cur_frame_new_fb |
1157 | | |
1158 | | // Modify 'lhs_ptr' to reference the buffer at 'rhs_ptr', and update the ref |
1159 | | // counts accordingly. |
1160 | | static inline void assign_frame_buffer_p(RefCntBuffer **lhs_ptr, |
1161 | 1.60k | RefCntBuffer *rhs_ptr) { |
1162 | 1.60k | RefCntBuffer *const old_ptr = *lhs_ptr; |
1163 | 1.60k | if (old_ptr != NULL) { |
1164 | 1.60k | assert(old_ptr->ref_count > 0); |
1165 | | // One less reference to the buffer at 'old_ptr', so decrease ref count. |
1166 | 1.60k | --old_ptr->ref_count; |
1167 | 1.60k | } |
1168 | | |
1169 | 1.60k | *lhs_ptr = rhs_ptr; |
1170 | | // One more reference to the buffer at 'rhs_ptr', so increase ref count. |
1171 | 1.60k | ++rhs_ptr->ref_count; |
1172 | 1.60k | } Unexecuted instantiation: av1_dx_iface.c:assign_frame_buffer_p decodeframe.c:assign_frame_buffer_p Line | Count | Source | 1161 | 1.60k | RefCntBuffer *rhs_ptr) { | 1162 | 1.60k | RefCntBuffer *const old_ptr = *lhs_ptr; | 1163 | 1.60k | if (old_ptr != NULL) { | 1164 | 1.60k | assert(old_ptr->ref_count > 0); | 1165 | | // One less reference to the buffer at 'old_ptr', so decrease ref count. | 1166 | 1.60k | --old_ptr->ref_count; | 1167 | 1.60k | } | 1168 | | | 1169 | 1.60k | *lhs_ptr = rhs_ptr; | 1170 | | // One more reference to the buffer at 'rhs_ptr', so increase ref count. | 1171 | 1.60k | ++rhs_ptr->ref_count; | 1172 | 1.60k | } |
Unexecuted instantiation: decodemv.c:assign_frame_buffer_p Unexecuted instantiation: decoder.c:assign_frame_buffer_p Unexecuted instantiation: decodetxb.c:assign_frame_buffer_p Unexecuted instantiation: detokenize.c:assign_frame_buffer_p Unexecuted instantiation: obu.c:assign_frame_buffer_p Unexecuted instantiation: alloccommon.c:assign_frame_buffer_p Unexecuted instantiation: av1_loopfilter.c:assign_frame_buffer_p Unexecuted instantiation: blockd.c:assign_frame_buffer_p Unexecuted instantiation: cdef.c:assign_frame_buffer_p Unexecuted instantiation: cdef_block.c:assign_frame_buffer_p Unexecuted instantiation: cfl.c:assign_frame_buffer_p Unexecuted instantiation: convolve.c:assign_frame_buffer_p Unexecuted instantiation: entropy.c:assign_frame_buffer_p Unexecuted instantiation: entropymode.c:assign_frame_buffer_p Unexecuted instantiation: entropymv.c:assign_frame_buffer_p Unexecuted instantiation: mvref_common.c:assign_frame_buffer_p Unexecuted instantiation: pred_common.c:assign_frame_buffer_p Unexecuted instantiation: quant_common.c:assign_frame_buffer_p Unexecuted instantiation: reconinter.c:assign_frame_buffer_p Unexecuted instantiation: reconintra.c:assign_frame_buffer_p Unexecuted instantiation: resize.c:assign_frame_buffer_p Unexecuted instantiation: restoration.c:assign_frame_buffer_p Unexecuted instantiation: scan.c:assign_frame_buffer_p Unexecuted instantiation: thread_common.c:assign_frame_buffer_p Unexecuted instantiation: tile_common.c:assign_frame_buffer_p Unexecuted instantiation: txb_common.c:assign_frame_buffer_p Unexecuted instantiation: warped_motion.c:assign_frame_buffer_p Unexecuted instantiation: cfl_sse2.c:assign_frame_buffer_p Unexecuted instantiation: resize_sse2.c:assign_frame_buffer_p Unexecuted instantiation: cfl_ssse3.c:assign_frame_buffer_p Unexecuted instantiation: resize_ssse3.c:assign_frame_buffer_p Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:assign_frame_buffer_p Unexecuted instantiation: filterintra_sse4.c:assign_frame_buffer_p Unexecuted instantiation: cfl_avx2.c:assign_frame_buffer_p Unexecuted instantiation: resize_avx2.c:assign_frame_buffer_p |
1173 | | |
1174 | 26.1M | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { |
1175 | 26.1M | return cm->current_frame.frame_type == KEY_FRAME || |
1176 | 26.1M | cm->current_frame.frame_type == INTRA_ONLY_FRAME; |
1177 | 26.1M | } av1_dx_iface.c:frame_is_intra_only Line | Count | Source | 1174 | 40.4k | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { | 1175 | 40.4k | return cm->current_frame.frame_type == KEY_FRAME || | 1176 | 40.4k | cm->current_frame.frame_type == INTRA_ONLY_FRAME; | 1177 | 40.4k | } |
decodeframe.c:frame_is_intra_only Line | Count | Source | 1174 | 1.03M | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { | 1175 | 1.03M | return cm->current_frame.frame_type == KEY_FRAME || | 1176 | 1.03M | cm->current_frame.frame_type == INTRA_ONLY_FRAME; | 1177 | 1.03M | } |
decodemv.c:frame_is_intra_only Line | Count | Source | 1174 | 24.8M | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { | 1175 | 24.8M | return cm->current_frame.frame_type == KEY_FRAME || | 1176 | 24.8M | cm->current_frame.frame_type == INTRA_ONLY_FRAME; | 1177 | 24.8M | } |
Unexecuted instantiation: decoder.c:frame_is_intra_only Unexecuted instantiation: decodetxb.c:frame_is_intra_only Unexecuted instantiation: detokenize.c:frame_is_intra_only Unexecuted instantiation: obu.c:frame_is_intra_only Unexecuted instantiation: alloccommon.c:frame_is_intra_only Unexecuted instantiation: av1_loopfilter.c:frame_is_intra_only Unexecuted instantiation: blockd.c:frame_is_intra_only Unexecuted instantiation: cdef.c:frame_is_intra_only Unexecuted instantiation: cdef_block.c:frame_is_intra_only Unexecuted instantiation: cfl.c:frame_is_intra_only Unexecuted instantiation: convolve.c:frame_is_intra_only Unexecuted instantiation: entropy.c:frame_is_intra_only Unexecuted instantiation: entropymode.c:frame_is_intra_only Unexecuted instantiation: entropymv.c:frame_is_intra_only mvref_common.c:frame_is_intra_only Line | Count | Source | 1174 | 130k | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { | 1175 | 130k | return cm->current_frame.frame_type == KEY_FRAME || | 1176 | 130k | cm->current_frame.frame_type == INTRA_ONLY_FRAME; | 1177 | 130k | } |
Unexecuted instantiation: pred_common.c:frame_is_intra_only Unexecuted instantiation: quant_common.c:frame_is_intra_only Unexecuted instantiation: reconinter.c:frame_is_intra_only Unexecuted instantiation: reconintra.c:frame_is_intra_only Unexecuted instantiation: resize.c:frame_is_intra_only Unexecuted instantiation: restoration.c:frame_is_intra_only Unexecuted instantiation: scan.c:frame_is_intra_only thread_common.c:frame_is_intra_only Line | Count | Source | 1174 | 91.5k | static inline int frame_is_intra_only(const AV1_COMMON *const cm) { | 1175 | 91.5k | return cm->current_frame.frame_type == KEY_FRAME || | 1176 | 91.5k | cm->current_frame.frame_type == INTRA_ONLY_FRAME; | 1177 | 91.5k | } |
Unexecuted instantiation: tile_common.c:frame_is_intra_only Unexecuted instantiation: txb_common.c:frame_is_intra_only Unexecuted instantiation: warped_motion.c:frame_is_intra_only Unexecuted instantiation: cfl_sse2.c:frame_is_intra_only Unexecuted instantiation: resize_sse2.c:frame_is_intra_only Unexecuted instantiation: cfl_ssse3.c:frame_is_intra_only Unexecuted instantiation: resize_ssse3.c:frame_is_intra_only Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_is_intra_only Unexecuted instantiation: filterintra_sse4.c:frame_is_intra_only Unexecuted instantiation: cfl_avx2.c:frame_is_intra_only Unexecuted instantiation: resize_avx2.c:frame_is_intra_only |
1178 | | |
1179 | 454k | static inline int frame_is_sframe(const AV1_COMMON *cm) { |
1180 | 454k | return cm->current_frame.frame_type == S_FRAME; |
1181 | 454k | } Unexecuted instantiation: av1_dx_iface.c:frame_is_sframe decodeframe.c:frame_is_sframe Line | Count | Source | 1179 | 454k | static inline int frame_is_sframe(const AV1_COMMON *cm) { | 1180 | 454k | return cm->current_frame.frame_type == S_FRAME; | 1181 | 454k | } |
Unexecuted instantiation: decodemv.c:frame_is_sframe Unexecuted instantiation: decoder.c:frame_is_sframe Unexecuted instantiation: decodetxb.c:frame_is_sframe Unexecuted instantiation: detokenize.c:frame_is_sframe Unexecuted instantiation: obu.c:frame_is_sframe Unexecuted instantiation: alloccommon.c:frame_is_sframe Unexecuted instantiation: av1_loopfilter.c:frame_is_sframe Unexecuted instantiation: blockd.c:frame_is_sframe Unexecuted instantiation: cdef.c:frame_is_sframe Unexecuted instantiation: cdef_block.c:frame_is_sframe Unexecuted instantiation: cfl.c:frame_is_sframe Unexecuted instantiation: convolve.c:frame_is_sframe Unexecuted instantiation: entropy.c:frame_is_sframe Unexecuted instantiation: entropymode.c:frame_is_sframe Unexecuted instantiation: entropymv.c:frame_is_sframe Unexecuted instantiation: mvref_common.c:frame_is_sframe Unexecuted instantiation: pred_common.c:frame_is_sframe Unexecuted instantiation: quant_common.c:frame_is_sframe Unexecuted instantiation: reconinter.c:frame_is_sframe Unexecuted instantiation: reconintra.c:frame_is_sframe Unexecuted instantiation: resize.c:frame_is_sframe Unexecuted instantiation: restoration.c:frame_is_sframe Unexecuted instantiation: scan.c:frame_is_sframe Unexecuted instantiation: thread_common.c:frame_is_sframe Unexecuted instantiation: tile_common.c:frame_is_sframe Unexecuted instantiation: txb_common.c:frame_is_sframe Unexecuted instantiation: warped_motion.c:frame_is_sframe Unexecuted instantiation: cfl_sse2.c:frame_is_sframe Unexecuted instantiation: resize_sse2.c:frame_is_sframe Unexecuted instantiation: cfl_ssse3.c:frame_is_sframe Unexecuted instantiation: resize_ssse3.c:frame_is_sframe Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_is_sframe Unexecuted instantiation: filterintra_sse4.c:frame_is_sframe Unexecuted instantiation: cfl_avx2.c:frame_is_sframe Unexecuted instantiation: resize_avx2.c:frame_is_sframe |
1182 | | |
1183 | | // These functions take a reference frame label between LAST_FRAME and |
1184 | | // EXTREF_FRAME inclusive. Note that this is different to the indexing |
1185 | | // previously used by the frame_refs[] array. |
1186 | | static inline int get_ref_frame_map_idx(const AV1_COMMON *const cm, |
1187 | 32.0M | const MV_REFERENCE_FRAME ref_frame) { |
1188 | 32.0M | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) |
1189 | 32.0M | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] |
1190 | 18.4E | : INVALID_IDX; |
1191 | 32.0M | } Unexecuted instantiation: av1_dx_iface.c:get_ref_frame_map_idx decodeframe.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 15.6M | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 15.6M | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 15.6M | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 18.4E | : INVALID_IDX; | 1191 | 15.6M | } |
decodemv.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 5.85M | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 5.85M | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 5.85M | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 18.4E | : INVALID_IDX; | 1191 | 5.85M | } |
decoder.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 362 | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 362 | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 362 | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 362 | : INVALID_IDX; | 1191 | 362 | } |
Unexecuted instantiation: decodetxb.c:get_ref_frame_map_idx Unexecuted instantiation: detokenize.c:get_ref_frame_map_idx Unexecuted instantiation: obu.c:get_ref_frame_map_idx Unexecuted instantiation: alloccommon.c:get_ref_frame_map_idx Unexecuted instantiation: av1_loopfilter.c:get_ref_frame_map_idx Unexecuted instantiation: blockd.c:get_ref_frame_map_idx Unexecuted instantiation: cdef.c:get_ref_frame_map_idx Unexecuted instantiation: cdef_block.c:get_ref_frame_map_idx Unexecuted instantiation: cfl.c:get_ref_frame_map_idx Unexecuted instantiation: convolve.c:get_ref_frame_map_idx Unexecuted instantiation: entropy.c:get_ref_frame_map_idx entropymode.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 241k | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 241k | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 241k | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 241k | : INVALID_IDX; | 1191 | 241k | } |
Unexecuted instantiation: entropymv.c:get_ref_frame_map_idx mvref_common.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 6.54M | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 6.56M | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 6.54M | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 6.54M | : INVALID_IDX; | 1191 | 6.54M | } |
Unexecuted instantiation: pred_common.c:get_ref_frame_map_idx Unexecuted instantiation: quant_common.c:get_ref_frame_map_idx reconinter.c:get_ref_frame_map_idx Line | Count | Source | 1187 | 3.75M | const MV_REFERENCE_FRAME ref_frame) { | 1188 | 3.75M | return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME) | 1189 | 3.75M | ? cm->remapped_ref_idx[ref_frame - LAST_FRAME] | 1190 | 18.4E | : INVALID_IDX; | 1191 | 3.75M | } |
Unexecuted instantiation: reconintra.c:get_ref_frame_map_idx Unexecuted instantiation: resize.c:get_ref_frame_map_idx Unexecuted instantiation: restoration.c:get_ref_frame_map_idx Unexecuted instantiation: scan.c:get_ref_frame_map_idx Unexecuted instantiation: thread_common.c:get_ref_frame_map_idx Unexecuted instantiation: tile_common.c:get_ref_frame_map_idx Unexecuted instantiation: txb_common.c:get_ref_frame_map_idx Unexecuted instantiation: warped_motion.c:get_ref_frame_map_idx Unexecuted instantiation: cfl_sse2.c:get_ref_frame_map_idx Unexecuted instantiation: resize_sse2.c:get_ref_frame_map_idx Unexecuted instantiation: cfl_ssse3.c:get_ref_frame_map_idx Unexecuted instantiation: resize_ssse3.c:get_ref_frame_map_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame_map_idx Unexecuted instantiation: filterintra_sse4.c:get_ref_frame_map_idx Unexecuted instantiation: cfl_avx2.c:get_ref_frame_map_idx Unexecuted instantiation: resize_avx2.c:get_ref_frame_map_idx |
1192 | | |
1193 | | static inline RefCntBuffer *get_ref_frame_buf( |
1194 | 18.0M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { |
1195 | 18.0M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); |
1196 | 18.0M | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; |
1197 | 18.0M | } Unexecuted instantiation: av1_dx_iface.c:get_ref_frame_buf decodeframe.c:get_ref_frame_buf Line | Count | Source | 1194 | 8.02M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 8.02M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 8.02M | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 8.02M | } |
decodemv.c:get_ref_frame_buf Line | Count | Source | 1194 | 673k | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 673k | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 674k | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 673k | } |
decoder.c:get_ref_frame_buf Line | Count | Source | 1194 | 362 | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 362 | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 362 | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 362 | } |
Unexecuted instantiation: decodetxb.c:get_ref_frame_buf Unexecuted instantiation: detokenize.c:get_ref_frame_buf Unexecuted instantiation: obu.c:get_ref_frame_buf Unexecuted instantiation: alloccommon.c:get_ref_frame_buf Unexecuted instantiation: av1_loopfilter.c:get_ref_frame_buf Unexecuted instantiation: blockd.c:get_ref_frame_buf Unexecuted instantiation: cdef.c:get_ref_frame_buf Unexecuted instantiation: cdef_block.c:get_ref_frame_buf Unexecuted instantiation: cfl.c:get_ref_frame_buf Unexecuted instantiation: convolve.c:get_ref_frame_buf Unexecuted instantiation: entropy.c:get_ref_frame_buf entropymode.c:get_ref_frame_buf Line | Count | Source | 1194 | 241k | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 241k | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 241k | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 241k | } |
Unexecuted instantiation: entropymv.c:get_ref_frame_buf mvref_common.c:get_ref_frame_buf Line | Count | Source | 1194 | 6.60M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 6.60M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 6.60M | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 6.60M | } |
Unexecuted instantiation: pred_common.c:get_ref_frame_buf Unexecuted instantiation: quant_common.c:get_ref_frame_buf reconinter.c:get_ref_frame_buf Line | Count | Source | 1194 | 2.50M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1195 | 2.50M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1196 | 2.50M | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1197 | 2.50M | } |
Unexecuted instantiation: reconintra.c:get_ref_frame_buf Unexecuted instantiation: resize.c:get_ref_frame_buf Unexecuted instantiation: restoration.c:get_ref_frame_buf Unexecuted instantiation: scan.c:get_ref_frame_buf Unexecuted instantiation: thread_common.c:get_ref_frame_buf Unexecuted instantiation: tile_common.c:get_ref_frame_buf Unexecuted instantiation: txb_common.c:get_ref_frame_buf Unexecuted instantiation: warped_motion.c:get_ref_frame_buf Unexecuted instantiation: cfl_sse2.c:get_ref_frame_buf Unexecuted instantiation: resize_sse2.c:get_ref_frame_buf Unexecuted instantiation: cfl_ssse3.c:get_ref_frame_buf Unexecuted instantiation: resize_ssse3.c:get_ref_frame_buf Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame_buf Unexecuted instantiation: filterintra_sse4.c:get_ref_frame_buf Unexecuted instantiation: cfl_avx2.c:get_ref_frame_buf Unexecuted instantiation: resize_avx2.c:get_ref_frame_buf |
1198 | | |
1199 | | // Both const and non-const versions of this function are provided so that it |
1200 | | // can be used with a const AV1_COMMON if needed. |
1201 | | static inline const struct scale_factors *get_ref_scale_factors_const( |
1202 | 13.5M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { |
1203 | 13.5M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); |
1204 | 13.5M | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; |
1205 | 13.5M | } Unexecuted instantiation: av1_dx_iface.c:get_ref_scale_factors_const decodeframe.c:get_ref_scale_factors_const Line | Count | Source | 1202 | 7.14M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1203 | 7.14M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1204 | 7.14M | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; | 1205 | 7.14M | } |
decodemv.c:get_ref_scale_factors_const Line | Count | Source | 1202 | 5.18M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1203 | 5.18M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1204 | 5.18M | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; | 1205 | 5.18M | } |
Unexecuted instantiation: decoder.c:get_ref_scale_factors_const Unexecuted instantiation: decodetxb.c:get_ref_scale_factors_const Unexecuted instantiation: detokenize.c:get_ref_scale_factors_const Unexecuted instantiation: obu.c:get_ref_scale_factors_const Unexecuted instantiation: alloccommon.c:get_ref_scale_factors_const Unexecuted instantiation: av1_loopfilter.c:get_ref_scale_factors_const Unexecuted instantiation: blockd.c:get_ref_scale_factors_const Unexecuted instantiation: cdef.c:get_ref_scale_factors_const Unexecuted instantiation: cdef_block.c:get_ref_scale_factors_const Unexecuted instantiation: cfl.c:get_ref_scale_factors_const Unexecuted instantiation: convolve.c:get_ref_scale_factors_const Unexecuted instantiation: entropy.c:get_ref_scale_factors_const Unexecuted instantiation: entropymode.c:get_ref_scale_factors_const Unexecuted instantiation: entropymv.c:get_ref_scale_factors_const Unexecuted instantiation: mvref_common.c:get_ref_scale_factors_const Unexecuted instantiation: pred_common.c:get_ref_scale_factors_const Unexecuted instantiation: quant_common.c:get_ref_scale_factors_const reconinter.c:get_ref_scale_factors_const Line | Count | Source | 1202 | 1.24M | const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1203 | 1.24M | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1204 | 1.24M | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; | 1205 | 1.24M | } |
Unexecuted instantiation: reconintra.c:get_ref_scale_factors_const Unexecuted instantiation: resize.c:get_ref_scale_factors_const Unexecuted instantiation: restoration.c:get_ref_scale_factors_const Unexecuted instantiation: scan.c:get_ref_scale_factors_const Unexecuted instantiation: thread_common.c:get_ref_scale_factors_const Unexecuted instantiation: tile_common.c:get_ref_scale_factors_const Unexecuted instantiation: txb_common.c:get_ref_scale_factors_const Unexecuted instantiation: warped_motion.c:get_ref_scale_factors_const Unexecuted instantiation: cfl_sse2.c:get_ref_scale_factors_const Unexecuted instantiation: resize_sse2.c:get_ref_scale_factors_const Unexecuted instantiation: cfl_ssse3.c:get_ref_scale_factors_const Unexecuted instantiation: resize_ssse3.c:get_ref_scale_factors_const Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_scale_factors_const Unexecuted instantiation: filterintra_sse4.c:get_ref_scale_factors_const Unexecuted instantiation: cfl_avx2.c:get_ref_scale_factors_const Unexecuted instantiation: resize_avx2.c:get_ref_scale_factors_const |
1206 | | |
1207 | | static inline struct scale_factors *get_ref_scale_factors( |
1208 | 342k | AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { |
1209 | 342k | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); |
1210 | 342k | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; |
1211 | 342k | } Unexecuted instantiation: av1_dx_iface.c:get_ref_scale_factors decodeframe.c:get_ref_scale_factors Line | Count | Source | 1208 | 342k | AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) { | 1209 | 342k | const int map_idx = get_ref_frame_map_idx(cm, ref_frame); | 1210 | 342k | return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL; | 1211 | 342k | } |
Unexecuted instantiation: decodemv.c:get_ref_scale_factors Unexecuted instantiation: decoder.c:get_ref_scale_factors Unexecuted instantiation: decodetxb.c:get_ref_scale_factors Unexecuted instantiation: detokenize.c:get_ref_scale_factors Unexecuted instantiation: obu.c:get_ref_scale_factors Unexecuted instantiation: alloccommon.c:get_ref_scale_factors Unexecuted instantiation: av1_loopfilter.c:get_ref_scale_factors Unexecuted instantiation: blockd.c:get_ref_scale_factors Unexecuted instantiation: cdef.c:get_ref_scale_factors Unexecuted instantiation: cdef_block.c:get_ref_scale_factors Unexecuted instantiation: cfl.c:get_ref_scale_factors Unexecuted instantiation: convolve.c:get_ref_scale_factors Unexecuted instantiation: entropy.c:get_ref_scale_factors Unexecuted instantiation: entropymode.c:get_ref_scale_factors Unexecuted instantiation: entropymv.c:get_ref_scale_factors Unexecuted instantiation: mvref_common.c:get_ref_scale_factors Unexecuted instantiation: pred_common.c:get_ref_scale_factors Unexecuted instantiation: quant_common.c:get_ref_scale_factors Unexecuted instantiation: reconinter.c:get_ref_scale_factors Unexecuted instantiation: reconintra.c:get_ref_scale_factors Unexecuted instantiation: resize.c:get_ref_scale_factors Unexecuted instantiation: restoration.c:get_ref_scale_factors Unexecuted instantiation: scan.c:get_ref_scale_factors Unexecuted instantiation: thread_common.c:get_ref_scale_factors Unexecuted instantiation: tile_common.c:get_ref_scale_factors Unexecuted instantiation: txb_common.c:get_ref_scale_factors Unexecuted instantiation: warped_motion.c:get_ref_scale_factors Unexecuted instantiation: cfl_sse2.c:get_ref_scale_factors Unexecuted instantiation: resize_sse2.c:get_ref_scale_factors Unexecuted instantiation: cfl_ssse3.c:get_ref_scale_factors Unexecuted instantiation: resize_ssse3.c:get_ref_scale_factors Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_scale_factors Unexecuted instantiation: filterintra_sse4.c:get_ref_scale_factors Unexecuted instantiation: cfl_avx2.c:get_ref_scale_factors Unexecuted instantiation: resize_avx2.c:get_ref_scale_factors |
1212 | | |
1213 | | static inline RefCntBuffer *get_primary_ref_frame_buf( |
1214 | 208k | const AV1_COMMON *const cm) { |
1215 | 208k | const int primary_ref_frame = cm->features.primary_ref_frame; |
1216 | 208k | if (primary_ref_frame == PRIMARY_REF_NONE) return NULL; |
1217 | 164k | const int map_idx = get_ref_frame_map_idx(cm, primary_ref_frame + 1); |
1218 | 164k | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; |
1219 | 208k | } Unexecuted instantiation: av1_dx_iface.c:get_primary_ref_frame_buf decodeframe.c:get_primary_ref_frame_buf Line | Count | Source | 1214 | 208k | const AV1_COMMON *const cm) { | 1215 | 208k | const int primary_ref_frame = cm->features.primary_ref_frame; | 1216 | 208k | if (primary_ref_frame == PRIMARY_REF_NONE) return NULL; | 1217 | 164k | const int map_idx = get_ref_frame_map_idx(cm, primary_ref_frame + 1); | 1218 | 164k | return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL; | 1219 | 208k | } |
Unexecuted instantiation: decodemv.c:get_primary_ref_frame_buf Unexecuted instantiation: decoder.c:get_primary_ref_frame_buf Unexecuted instantiation: decodetxb.c:get_primary_ref_frame_buf Unexecuted instantiation: detokenize.c:get_primary_ref_frame_buf Unexecuted instantiation: obu.c:get_primary_ref_frame_buf Unexecuted instantiation: alloccommon.c:get_primary_ref_frame_buf Unexecuted instantiation: av1_loopfilter.c:get_primary_ref_frame_buf Unexecuted instantiation: blockd.c:get_primary_ref_frame_buf Unexecuted instantiation: cdef.c:get_primary_ref_frame_buf Unexecuted instantiation: cdef_block.c:get_primary_ref_frame_buf Unexecuted instantiation: cfl.c:get_primary_ref_frame_buf Unexecuted instantiation: convolve.c:get_primary_ref_frame_buf Unexecuted instantiation: entropy.c:get_primary_ref_frame_buf Unexecuted instantiation: entropymode.c:get_primary_ref_frame_buf Unexecuted instantiation: entropymv.c:get_primary_ref_frame_buf Unexecuted instantiation: mvref_common.c:get_primary_ref_frame_buf Unexecuted instantiation: pred_common.c:get_primary_ref_frame_buf Unexecuted instantiation: quant_common.c:get_primary_ref_frame_buf Unexecuted instantiation: reconinter.c:get_primary_ref_frame_buf Unexecuted instantiation: reconintra.c:get_primary_ref_frame_buf Unexecuted instantiation: resize.c:get_primary_ref_frame_buf Unexecuted instantiation: restoration.c:get_primary_ref_frame_buf Unexecuted instantiation: scan.c:get_primary_ref_frame_buf Unexecuted instantiation: thread_common.c:get_primary_ref_frame_buf Unexecuted instantiation: tile_common.c:get_primary_ref_frame_buf Unexecuted instantiation: txb_common.c:get_primary_ref_frame_buf Unexecuted instantiation: warped_motion.c:get_primary_ref_frame_buf Unexecuted instantiation: cfl_sse2.c:get_primary_ref_frame_buf Unexecuted instantiation: resize_sse2.c:get_primary_ref_frame_buf Unexecuted instantiation: cfl_ssse3.c:get_primary_ref_frame_buf Unexecuted instantiation: resize_ssse3.c:get_primary_ref_frame_buf Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_primary_ref_frame_buf Unexecuted instantiation: filterintra_sse4.c:get_primary_ref_frame_buf Unexecuted instantiation: cfl_avx2.c:get_primary_ref_frame_buf Unexecuted instantiation: resize_avx2.c:get_primary_ref_frame_buf |
1220 | | |
1221 | | // Returns 1 if this frame might allow mvs from some reference frame. |
1222 | 69.9k | static inline int frame_might_allow_ref_frame_mvs(const AV1_COMMON *cm) { |
1223 | 69.9k | return !cm->features.error_resilient_mode && |
1224 | 69.9k | cm->seq_params->order_hint_info.enable_ref_frame_mvs && |
1225 | 69.9k | cm->seq_params->order_hint_info.enable_order_hint && |
1226 | 69.9k | !frame_is_intra_only(cm); |
1227 | 69.9k | } Unexecuted instantiation: av1_dx_iface.c:frame_might_allow_ref_frame_mvs decodeframe.c:frame_might_allow_ref_frame_mvs Line | Count | Source | 1222 | 69.9k | static inline int frame_might_allow_ref_frame_mvs(const AV1_COMMON *cm) { | 1223 | 69.9k | return !cm->features.error_resilient_mode && | 1224 | 69.9k | cm->seq_params->order_hint_info.enable_ref_frame_mvs && | 1225 | 69.9k | cm->seq_params->order_hint_info.enable_order_hint && | 1226 | 69.9k | !frame_is_intra_only(cm); | 1227 | 69.9k | } |
Unexecuted instantiation: decodemv.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: decoder.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: decodetxb.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: detokenize.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: obu.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: alloccommon.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: av1_loopfilter.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: blockd.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cdef.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cdef_block.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cfl.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: convolve.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: entropy.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: entropymode.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: entropymv.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: mvref_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: pred_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: quant_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: reconinter.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: reconintra.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: resize.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: restoration.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: scan.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: thread_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: tile_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: txb_common.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: warped_motion.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cfl_sse2.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: resize_sse2.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cfl_ssse3.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: resize_ssse3.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: filterintra_sse4.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: cfl_avx2.c:frame_might_allow_ref_frame_mvs Unexecuted instantiation: resize_avx2.c:frame_might_allow_ref_frame_mvs |
1228 | | |
1229 | | // Returns 1 if this frame might use warped_motion |
1230 | 181k | static inline int frame_might_allow_warped_motion(const AV1_COMMON *cm) { |
1231 | 181k | return !cm->features.error_resilient_mode && !frame_is_intra_only(cm) && |
1232 | 181k | cm->seq_params->enable_warped_motion; |
1233 | 181k | } Unexecuted instantiation: av1_dx_iface.c:frame_might_allow_warped_motion decodeframe.c:frame_might_allow_warped_motion Line | Count | Source | 1230 | 181k | static inline int frame_might_allow_warped_motion(const AV1_COMMON *cm) { | 1231 | 181k | return !cm->features.error_resilient_mode && !frame_is_intra_only(cm) && | 1232 | 181k | cm->seq_params->enable_warped_motion; | 1233 | 181k | } |
Unexecuted instantiation: decodemv.c:frame_might_allow_warped_motion Unexecuted instantiation: decoder.c:frame_might_allow_warped_motion Unexecuted instantiation: decodetxb.c:frame_might_allow_warped_motion Unexecuted instantiation: detokenize.c:frame_might_allow_warped_motion Unexecuted instantiation: obu.c:frame_might_allow_warped_motion Unexecuted instantiation: alloccommon.c:frame_might_allow_warped_motion Unexecuted instantiation: av1_loopfilter.c:frame_might_allow_warped_motion Unexecuted instantiation: blockd.c:frame_might_allow_warped_motion Unexecuted instantiation: cdef.c:frame_might_allow_warped_motion Unexecuted instantiation: cdef_block.c:frame_might_allow_warped_motion Unexecuted instantiation: cfl.c:frame_might_allow_warped_motion Unexecuted instantiation: convolve.c:frame_might_allow_warped_motion Unexecuted instantiation: entropy.c:frame_might_allow_warped_motion Unexecuted instantiation: entropymode.c:frame_might_allow_warped_motion Unexecuted instantiation: entropymv.c:frame_might_allow_warped_motion Unexecuted instantiation: mvref_common.c:frame_might_allow_warped_motion Unexecuted instantiation: pred_common.c:frame_might_allow_warped_motion Unexecuted instantiation: quant_common.c:frame_might_allow_warped_motion Unexecuted instantiation: reconinter.c:frame_might_allow_warped_motion Unexecuted instantiation: reconintra.c:frame_might_allow_warped_motion Unexecuted instantiation: resize.c:frame_might_allow_warped_motion Unexecuted instantiation: restoration.c:frame_might_allow_warped_motion Unexecuted instantiation: scan.c:frame_might_allow_warped_motion Unexecuted instantiation: thread_common.c:frame_might_allow_warped_motion Unexecuted instantiation: tile_common.c:frame_might_allow_warped_motion Unexecuted instantiation: txb_common.c:frame_might_allow_warped_motion Unexecuted instantiation: warped_motion.c:frame_might_allow_warped_motion Unexecuted instantiation: cfl_sse2.c:frame_might_allow_warped_motion Unexecuted instantiation: resize_sse2.c:frame_might_allow_warped_motion Unexecuted instantiation: cfl_ssse3.c:frame_might_allow_warped_motion Unexecuted instantiation: resize_ssse3.c:frame_might_allow_warped_motion Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_might_allow_warped_motion Unexecuted instantiation: filterintra_sse4.c:frame_might_allow_warped_motion Unexecuted instantiation: cfl_avx2.c:frame_might_allow_warped_motion Unexecuted instantiation: resize_avx2.c:frame_might_allow_warped_motion |
1234 | | |
1235 | 203k | static inline void ensure_mv_buffer(RefCntBuffer *buf, AV1_COMMON *cm) { |
1236 | 203k | const int buf_rows = buf->mi_rows; |
1237 | 203k | const int buf_cols = buf->mi_cols; |
1238 | 203k | const CommonModeInfoParams *const mi_params = &cm->mi_params; |
1239 | | |
1240 | 203k | if (buf->mvs == NULL || buf_rows != mi_params->mi_rows || |
1241 | 203k | buf_cols != mi_params->mi_cols) { |
1242 | 93.4k | aom_free(buf->mvs); |
1243 | 93.4k | buf->mi_rows = mi_params->mi_rows; |
1244 | 93.4k | buf->mi_cols = mi_params->mi_cols; |
1245 | 93.4k | CHECK_MEM_ERROR(cm, buf->mvs, |
1246 | 93.4k | (MV_REF *)aom_calloc(((mi_params->mi_rows + 1) >> 1) * |
1247 | 93.4k | ((mi_params->mi_cols + 1) >> 1), |
1248 | 93.4k | sizeof(*buf->mvs))); |
1249 | 93.4k | aom_free(buf->seg_map); |
1250 | 93.4k | CHECK_MEM_ERROR( |
1251 | 93.4k | cm, buf->seg_map, |
1252 | 93.4k | (uint8_t *)aom_calloc(mi_params->mi_rows * mi_params->mi_cols, |
1253 | 93.4k | sizeof(*buf->seg_map))); |
1254 | 93.4k | } |
1255 | | |
1256 | 203k | const int mem_size = |
1257 | 203k | ((mi_params->mi_rows + MAX_MIB_SIZE) >> 1) * (mi_params->mi_stride >> 1); |
1258 | | |
1259 | 203k | if (cm->tpl_mvs == NULL || cm->tpl_mvs_mem_size < mem_size) { |
1260 | 19.6k | aom_free(cm->tpl_mvs); |
1261 | 19.6k | CHECK_MEM_ERROR(cm, cm->tpl_mvs, |
1262 | 19.6k | (TPL_MV_REF *)aom_calloc(mem_size, sizeof(*cm->tpl_mvs))); |
1263 | 19.6k | cm->tpl_mvs_mem_size = mem_size; |
1264 | 19.6k | } |
1265 | 203k | } Unexecuted instantiation: av1_dx_iface.c:ensure_mv_buffer decodeframe.c:ensure_mv_buffer Line | Count | Source | 1235 | 203k | static inline void ensure_mv_buffer(RefCntBuffer *buf, AV1_COMMON *cm) { | 1236 | 203k | const int buf_rows = buf->mi_rows; | 1237 | 203k | const int buf_cols = buf->mi_cols; | 1238 | 203k | const CommonModeInfoParams *const mi_params = &cm->mi_params; | 1239 | | | 1240 | 203k | if (buf->mvs == NULL || buf_rows != mi_params->mi_rows || | 1241 | 203k | buf_cols != mi_params->mi_cols) { | 1242 | 93.4k | aom_free(buf->mvs); | 1243 | 93.4k | buf->mi_rows = mi_params->mi_rows; | 1244 | 93.4k | buf->mi_cols = mi_params->mi_cols; | 1245 | 93.4k | CHECK_MEM_ERROR(cm, buf->mvs, | 1246 | 93.4k | (MV_REF *)aom_calloc(((mi_params->mi_rows + 1) >> 1) * | 1247 | 93.4k | ((mi_params->mi_cols + 1) >> 1), | 1248 | 93.4k | sizeof(*buf->mvs))); | 1249 | 93.4k | aom_free(buf->seg_map); | 1250 | 93.4k | CHECK_MEM_ERROR( | 1251 | 93.4k | cm, buf->seg_map, | 1252 | 93.4k | (uint8_t *)aom_calloc(mi_params->mi_rows * mi_params->mi_cols, | 1253 | 93.4k | sizeof(*buf->seg_map))); | 1254 | 93.4k | } | 1255 | | | 1256 | 203k | const int mem_size = | 1257 | 203k | ((mi_params->mi_rows + MAX_MIB_SIZE) >> 1) * (mi_params->mi_stride >> 1); | 1258 | | | 1259 | 203k | if (cm->tpl_mvs == NULL || cm->tpl_mvs_mem_size < mem_size) { | 1260 | 19.6k | aom_free(cm->tpl_mvs); | 1261 | 19.6k | CHECK_MEM_ERROR(cm, cm->tpl_mvs, | 1262 | 19.6k | (TPL_MV_REF *)aom_calloc(mem_size, sizeof(*cm->tpl_mvs))); | 1263 | 19.6k | cm->tpl_mvs_mem_size = mem_size; | 1264 | 19.6k | } | 1265 | 203k | } |
Unexecuted instantiation: decodemv.c:ensure_mv_buffer Unexecuted instantiation: decoder.c:ensure_mv_buffer Unexecuted instantiation: decodetxb.c:ensure_mv_buffer Unexecuted instantiation: detokenize.c:ensure_mv_buffer Unexecuted instantiation: obu.c:ensure_mv_buffer Unexecuted instantiation: alloccommon.c:ensure_mv_buffer Unexecuted instantiation: av1_loopfilter.c:ensure_mv_buffer Unexecuted instantiation: blockd.c:ensure_mv_buffer Unexecuted instantiation: cdef.c:ensure_mv_buffer Unexecuted instantiation: cdef_block.c:ensure_mv_buffer Unexecuted instantiation: cfl.c:ensure_mv_buffer Unexecuted instantiation: convolve.c:ensure_mv_buffer Unexecuted instantiation: entropy.c:ensure_mv_buffer Unexecuted instantiation: entropymode.c:ensure_mv_buffer Unexecuted instantiation: entropymv.c:ensure_mv_buffer Unexecuted instantiation: mvref_common.c:ensure_mv_buffer Unexecuted instantiation: pred_common.c:ensure_mv_buffer Unexecuted instantiation: quant_common.c:ensure_mv_buffer Unexecuted instantiation: reconinter.c:ensure_mv_buffer Unexecuted instantiation: reconintra.c:ensure_mv_buffer Unexecuted instantiation: resize.c:ensure_mv_buffer Unexecuted instantiation: restoration.c:ensure_mv_buffer Unexecuted instantiation: scan.c:ensure_mv_buffer Unexecuted instantiation: thread_common.c:ensure_mv_buffer Unexecuted instantiation: tile_common.c:ensure_mv_buffer Unexecuted instantiation: txb_common.c:ensure_mv_buffer Unexecuted instantiation: warped_motion.c:ensure_mv_buffer Unexecuted instantiation: cfl_sse2.c:ensure_mv_buffer Unexecuted instantiation: resize_sse2.c:ensure_mv_buffer Unexecuted instantiation: cfl_ssse3.c:ensure_mv_buffer Unexecuted instantiation: resize_ssse3.c:ensure_mv_buffer Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:ensure_mv_buffer Unexecuted instantiation: filterintra_sse4.c:ensure_mv_buffer Unexecuted instantiation: cfl_avx2.c:ensure_mv_buffer Unexecuted instantiation: resize_avx2.c:ensure_mv_buffer |
1266 | | |
1267 | | #if !CONFIG_REALTIME_ONLY || CONFIG_AV1_DECODER |
1268 | | void cfl_init(CFL_CTX *cfl, const SequenceHeader *seq_params); |
1269 | | #endif |
1270 | | |
1271 | 172M | static inline int av1_num_planes(const AV1_COMMON *cm) { |
1272 | 172M | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; |
1273 | 172M | } av1_dx_iface.c:av1_num_planes Line | Count | Source | 1271 | 48.7k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 48.7k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 48.7k | } |
decodeframe.c:av1_num_planes Line | Count | Source | 1271 | 84.4M | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 84.4M | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 84.4M | } |
decodemv.c:av1_num_planes Line | Count | Source | 1271 | 2.66M | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 2.66M | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 2.66M | } |
Line | Count | Source | 1271 | 78.6M | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 78.6M | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 78.6M | } |
Unexecuted instantiation: decodetxb.c:av1_num_planes Unexecuted instantiation: detokenize.c:av1_num_planes Unexecuted instantiation: obu.c:av1_num_planes alloccommon.c:av1_num_planes Line | Count | Source | 1271 | 121k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 121k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 121k | } |
Unexecuted instantiation: av1_loopfilter.c:av1_num_planes Unexecuted instantiation: blockd.c:av1_num_planes Line | Count | Source | 1271 | 672k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 672k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 672k | } |
Unexecuted instantiation: cdef_block.c:av1_num_planes Unexecuted instantiation: cfl.c:av1_num_planes Unexecuted instantiation: convolve.c:av1_num_planes Unexecuted instantiation: entropy.c:av1_num_planes Unexecuted instantiation: entropymode.c:av1_num_planes Unexecuted instantiation: entropymv.c:av1_num_planes Unexecuted instantiation: mvref_common.c:av1_num_planes Unexecuted instantiation: pred_common.c:av1_num_planes Unexecuted instantiation: quant_common.c:av1_num_planes reconinter.c:av1_num_planes Line | Count | Source | 1271 | 4.51M | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 4.51M | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 4.51M | } |
Unexecuted instantiation: reconintra.c:av1_num_planes Line | Count | Source | 1271 | 19.7k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 19.7k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 19.7k | } |
restoration.c:av1_num_planes Line | Count | Source | 1271 | 45.2k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 45.2k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 45.2k | } |
Unexecuted instantiation: scan.c:av1_num_planes thread_common.c:av1_num_planes Line | Count | Source | 1271 | 905k | static inline int av1_num_planes(const AV1_COMMON *cm) { | 1272 | 905k | return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE; | 1273 | 905k | } |
Unexecuted instantiation: tile_common.c:av1_num_planes Unexecuted instantiation: txb_common.c:av1_num_planes Unexecuted instantiation: warped_motion.c:av1_num_planes Unexecuted instantiation: cfl_sse2.c:av1_num_planes Unexecuted instantiation: resize_sse2.c:av1_num_planes Unexecuted instantiation: cfl_ssse3.c:av1_num_planes Unexecuted instantiation: resize_ssse3.c:av1_num_planes Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_num_planes Unexecuted instantiation: filterintra_sse4.c:av1_num_planes Unexecuted instantiation: cfl_avx2.c:av1_num_planes Unexecuted instantiation: resize_avx2.c:av1_num_planes |
1274 | | |
1275 | | static inline void av1_init_above_context(CommonContexts *above_contexts, |
1276 | | int num_planes, int tile_row, |
1277 | 162k | MACROBLOCKD *xd) { |
1278 | 613k | for (int i = 0; i < num_planes; ++i) { |
1279 | 450k | xd->above_entropy_context[i] = above_contexts->entropy[i][tile_row]; |
1280 | 450k | } |
1281 | 162k | xd->above_partition_context = above_contexts->partition[tile_row]; |
1282 | 162k | xd->above_txfm_context = above_contexts->txfm[tile_row]; |
1283 | 162k | } Unexecuted instantiation: av1_dx_iface.c:av1_init_above_context decodeframe.c:av1_init_above_context Line | Count | Source | 1277 | 162k | MACROBLOCKD *xd) { | 1278 | 613k | for (int i = 0; i < num_planes; ++i) { | 1279 | 450k | xd->above_entropy_context[i] = above_contexts->entropy[i][tile_row]; | 1280 | 450k | } | 1281 | 162k | xd->above_partition_context = above_contexts->partition[tile_row]; | 1282 | 162k | xd->above_txfm_context = above_contexts->txfm[tile_row]; | 1283 | 162k | } |
Unexecuted instantiation: decodemv.c:av1_init_above_context Unexecuted instantiation: decoder.c:av1_init_above_context Unexecuted instantiation: decodetxb.c:av1_init_above_context Unexecuted instantiation: detokenize.c:av1_init_above_context Unexecuted instantiation: obu.c:av1_init_above_context Unexecuted instantiation: alloccommon.c:av1_init_above_context Unexecuted instantiation: av1_loopfilter.c:av1_init_above_context Unexecuted instantiation: blockd.c:av1_init_above_context Unexecuted instantiation: cdef.c:av1_init_above_context Unexecuted instantiation: cdef_block.c:av1_init_above_context Unexecuted instantiation: cfl.c:av1_init_above_context Unexecuted instantiation: convolve.c:av1_init_above_context Unexecuted instantiation: entropy.c:av1_init_above_context Unexecuted instantiation: entropymode.c:av1_init_above_context Unexecuted instantiation: entropymv.c:av1_init_above_context Unexecuted instantiation: mvref_common.c:av1_init_above_context Unexecuted instantiation: pred_common.c:av1_init_above_context Unexecuted instantiation: quant_common.c:av1_init_above_context Unexecuted instantiation: reconinter.c:av1_init_above_context Unexecuted instantiation: reconintra.c:av1_init_above_context Unexecuted instantiation: resize.c:av1_init_above_context Unexecuted instantiation: restoration.c:av1_init_above_context Unexecuted instantiation: scan.c:av1_init_above_context Unexecuted instantiation: thread_common.c:av1_init_above_context Unexecuted instantiation: tile_common.c:av1_init_above_context Unexecuted instantiation: txb_common.c:av1_init_above_context Unexecuted instantiation: warped_motion.c:av1_init_above_context Unexecuted instantiation: cfl_sse2.c:av1_init_above_context Unexecuted instantiation: resize_sse2.c:av1_init_above_context Unexecuted instantiation: cfl_ssse3.c:av1_init_above_context Unexecuted instantiation: resize_ssse3.c:av1_init_above_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_init_above_context Unexecuted instantiation: filterintra_sse4.c:av1_init_above_context Unexecuted instantiation: cfl_avx2.c:av1_init_above_context Unexecuted instantiation: resize_avx2.c:av1_init_above_context |
1284 | | |
1285 | 288k | static inline void av1_init_macroblockd(AV1_COMMON *cm, MACROBLOCKD *xd) { |
1286 | 288k | const int num_planes = av1_num_planes(cm); |
1287 | 288k | const CommonQuantParams *const quant_params = &cm->quant_params; |
1288 | | |
1289 | 1.08M | for (int i = 0; i < num_planes; ++i) { |
1290 | 794k | if (xd->plane[i].plane_type == PLANE_TYPE_Y) { |
1291 | 288k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->y_dequant_QTX, |
1292 | 288k | sizeof(quant_params->y_dequant_QTX)); |
1293 | 288k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->y_iqmatrix, |
1294 | 288k | sizeof(quant_params->y_iqmatrix)); |
1295 | | |
1296 | 506k | } else { |
1297 | 506k | if (i == AOM_PLANE_U) { |
1298 | 254k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->u_dequant_QTX, |
1299 | 254k | sizeof(quant_params->u_dequant_QTX)); |
1300 | 254k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->u_iqmatrix, |
1301 | 254k | sizeof(quant_params->u_iqmatrix)); |
1302 | 254k | } else { |
1303 | 251k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->v_dequant_QTX, |
1304 | 251k | sizeof(quant_params->v_dequant_QTX)); |
1305 | 251k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->v_iqmatrix, |
1306 | 251k | sizeof(quant_params->v_iqmatrix)); |
1307 | 251k | } |
1308 | 506k | } |
1309 | 794k | } |
1310 | 288k | xd->mi_stride = cm->mi_params.mi_stride; |
1311 | 288k | xd->error_info = cm->error; |
1312 | 288k | #if !CONFIG_REALTIME_ONLY || CONFIG_AV1_DECODER |
1313 | 288k | cfl_init(&xd->cfl, cm->seq_params); |
1314 | 288k | #endif |
1315 | 288k | } Unexecuted instantiation: av1_dx_iface.c:av1_init_macroblockd decodeframe.c:av1_init_macroblockd Line | Count | Source | 1285 | 288k | static inline void av1_init_macroblockd(AV1_COMMON *cm, MACROBLOCKD *xd) { | 1286 | 288k | const int num_planes = av1_num_planes(cm); | 1287 | 288k | const CommonQuantParams *const quant_params = &cm->quant_params; | 1288 | | | 1289 | 1.08M | for (int i = 0; i < num_planes; ++i) { | 1290 | 794k | if (xd->plane[i].plane_type == PLANE_TYPE_Y) { | 1291 | 288k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->y_dequant_QTX, | 1292 | 288k | sizeof(quant_params->y_dequant_QTX)); | 1293 | 288k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->y_iqmatrix, | 1294 | 288k | sizeof(quant_params->y_iqmatrix)); | 1295 | | | 1296 | 506k | } else { | 1297 | 506k | if (i == AOM_PLANE_U) { | 1298 | 254k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->u_dequant_QTX, | 1299 | 254k | sizeof(quant_params->u_dequant_QTX)); | 1300 | 254k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->u_iqmatrix, | 1301 | 254k | sizeof(quant_params->u_iqmatrix)); | 1302 | 254k | } else { | 1303 | 251k | memcpy(xd->plane[i].seg_dequant_QTX, quant_params->v_dequant_QTX, | 1304 | 251k | sizeof(quant_params->v_dequant_QTX)); | 1305 | 251k | memcpy(xd->plane[i].seg_iqmatrix, quant_params->v_iqmatrix, | 1306 | 251k | sizeof(quant_params->v_iqmatrix)); | 1307 | 251k | } | 1308 | 506k | } | 1309 | 794k | } | 1310 | 288k | xd->mi_stride = cm->mi_params.mi_stride; | 1311 | 288k | xd->error_info = cm->error; | 1312 | 288k | #if !CONFIG_REALTIME_ONLY || CONFIG_AV1_DECODER | 1313 | 288k | cfl_init(&xd->cfl, cm->seq_params); | 1314 | 288k | #endif | 1315 | 288k | } |
Unexecuted instantiation: decodemv.c:av1_init_macroblockd Unexecuted instantiation: decoder.c:av1_init_macroblockd Unexecuted instantiation: decodetxb.c:av1_init_macroblockd Unexecuted instantiation: detokenize.c:av1_init_macroblockd Unexecuted instantiation: obu.c:av1_init_macroblockd Unexecuted instantiation: alloccommon.c:av1_init_macroblockd Unexecuted instantiation: av1_loopfilter.c:av1_init_macroblockd Unexecuted instantiation: blockd.c:av1_init_macroblockd Unexecuted instantiation: cdef.c:av1_init_macroblockd Unexecuted instantiation: cdef_block.c:av1_init_macroblockd Unexecuted instantiation: cfl.c:av1_init_macroblockd Unexecuted instantiation: convolve.c:av1_init_macroblockd Unexecuted instantiation: entropy.c:av1_init_macroblockd Unexecuted instantiation: entropymode.c:av1_init_macroblockd Unexecuted instantiation: entropymv.c:av1_init_macroblockd Unexecuted instantiation: mvref_common.c:av1_init_macroblockd Unexecuted instantiation: pred_common.c:av1_init_macroblockd Unexecuted instantiation: quant_common.c:av1_init_macroblockd Unexecuted instantiation: reconinter.c:av1_init_macroblockd Unexecuted instantiation: reconintra.c:av1_init_macroblockd Unexecuted instantiation: resize.c:av1_init_macroblockd Unexecuted instantiation: restoration.c:av1_init_macroblockd Unexecuted instantiation: scan.c:av1_init_macroblockd Unexecuted instantiation: thread_common.c:av1_init_macroblockd Unexecuted instantiation: tile_common.c:av1_init_macroblockd Unexecuted instantiation: txb_common.c:av1_init_macroblockd Unexecuted instantiation: warped_motion.c:av1_init_macroblockd Unexecuted instantiation: cfl_sse2.c:av1_init_macroblockd Unexecuted instantiation: resize_sse2.c:av1_init_macroblockd Unexecuted instantiation: cfl_ssse3.c:av1_init_macroblockd Unexecuted instantiation: resize_ssse3.c:av1_init_macroblockd Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_init_macroblockd Unexecuted instantiation: filterintra_sse4.c:av1_init_macroblockd Unexecuted instantiation: cfl_avx2.c:av1_init_macroblockd Unexecuted instantiation: resize_avx2.c:av1_init_macroblockd |
1316 | | |
1317 | | static inline void set_entropy_context(MACROBLOCKD *xd, int mi_row, int mi_col, |
1318 | 15.6M | const int num_planes) { |
1319 | 15.6M | int i; |
1320 | 15.6M | int row_offset = mi_row; |
1321 | 15.6M | int col_offset = mi_col; |
1322 | 61.2M | for (i = 0; i < num_planes; ++i) { |
1323 | 45.6M | struct macroblockd_plane *const pd = &xd->plane[i]; |
1324 | | // Offset the buffer pointer |
1325 | 45.6M | const BLOCK_SIZE bsize = xd->mi[0]->bsize; |
1326 | 45.6M | if (pd->subsampling_y && (mi_row & 0x01) && (mi_size_high[bsize] == 1)) |
1327 | 1.53M | row_offset = mi_row - 1; |
1328 | 45.6M | if (pd->subsampling_x && (mi_col & 0x01) && (mi_size_wide[bsize] == 1)) |
1329 | 1.29M | col_offset = mi_col - 1; |
1330 | 45.6M | int above_idx = col_offset; |
1331 | 45.6M | int left_idx = row_offset & MAX_MIB_MASK; |
1332 | 45.6M | pd->above_entropy_context = |
1333 | 45.6M | &xd->above_entropy_context[i][above_idx >> pd->subsampling_x]; |
1334 | 45.6M | pd->left_entropy_context = |
1335 | 45.6M | &xd->left_entropy_context[i][left_idx >> pd->subsampling_y]; |
1336 | 45.6M | } |
1337 | 15.6M | } Unexecuted instantiation: av1_dx_iface.c:set_entropy_context decodeframe.c:set_entropy_context Line | Count | Source | 1318 | 15.6M | const int num_planes) { | 1319 | 15.6M | int i; | 1320 | 15.6M | int row_offset = mi_row; | 1321 | 15.6M | int col_offset = mi_col; | 1322 | 61.2M | for (i = 0; i < num_planes; ++i) { | 1323 | 45.6M | struct macroblockd_plane *const pd = &xd->plane[i]; | 1324 | | // Offset the buffer pointer | 1325 | 45.6M | const BLOCK_SIZE bsize = xd->mi[0]->bsize; | 1326 | 45.6M | if (pd->subsampling_y && (mi_row & 0x01) && (mi_size_high[bsize] == 1)) | 1327 | 1.53M | row_offset = mi_row - 1; | 1328 | 45.6M | if (pd->subsampling_x && (mi_col & 0x01) && (mi_size_wide[bsize] == 1)) | 1329 | 1.29M | col_offset = mi_col - 1; | 1330 | 45.6M | int above_idx = col_offset; | 1331 | 45.6M | int left_idx = row_offset & MAX_MIB_MASK; | 1332 | 45.6M | pd->above_entropy_context = | 1333 | 45.6M | &xd->above_entropy_context[i][above_idx >> pd->subsampling_x]; | 1334 | 45.6M | pd->left_entropy_context = | 1335 | 45.6M | &xd->left_entropy_context[i][left_idx >> pd->subsampling_y]; | 1336 | 45.6M | } | 1337 | 15.6M | } |
Unexecuted instantiation: decodemv.c:set_entropy_context Unexecuted instantiation: decoder.c:set_entropy_context Unexecuted instantiation: decodetxb.c:set_entropy_context Unexecuted instantiation: detokenize.c:set_entropy_context Unexecuted instantiation: obu.c:set_entropy_context Unexecuted instantiation: alloccommon.c:set_entropy_context Unexecuted instantiation: av1_loopfilter.c:set_entropy_context Unexecuted instantiation: blockd.c:set_entropy_context Unexecuted instantiation: cdef.c:set_entropy_context Unexecuted instantiation: cdef_block.c:set_entropy_context Unexecuted instantiation: cfl.c:set_entropy_context Unexecuted instantiation: convolve.c:set_entropy_context Unexecuted instantiation: entropy.c:set_entropy_context Unexecuted instantiation: entropymode.c:set_entropy_context Unexecuted instantiation: entropymv.c:set_entropy_context Unexecuted instantiation: mvref_common.c:set_entropy_context Unexecuted instantiation: pred_common.c:set_entropy_context Unexecuted instantiation: quant_common.c:set_entropy_context Unexecuted instantiation: reconinter.c:set_entropy_context Unexecuted instantiation: reconintra.c:set_entropy_context Unexecuted instantiation: resize.c:set_entropy_context Unexecuted instantiation: restoration.c:set_entropy_context Unexecuted instantiation: scan.c:set_entropy_context Unexecuted instantiation: thread_common.c:set_entropy_context Unexecuted instantiation: tile_common.c:set_entropy_context Unexecuted instantiation: txb_common.c:set_entropy_context Unexecuted instantiation: warped_motion.c:set_entropy_context Unexecuted instantiation: cfl_sse2.c:set_entropy_context Unexecuted instantiation: resize_sse2.c:set_entropy_context Unexecuted instantiation: cfl_ssse3.c:set_entropy_context Unexecuted instantiation: resize_ssse3.c:set_entropy_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_entropy_context Unexecuted instantiation: filterintra_sse4.c:set_entropy_context Unexecuted instantiation: cfl_avx2.c:set_entropy_context Unexecuted instantiation: resize_avx2.c:set_entropy_context |
1338 | | |
1339 | 423k | static inline int calc_mi_size(int len) { |
1340 | | // len is in mi units. Align to a multiple of SBs. |
1341 | 423k | return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2); |
1342 | 423k | } Unexecuted instantiation: av1_dx_iface.c:calc_mi_size Unexecuted instantiation: decodeframe.c:calc_mi_size Unexecuted instantiation: decodemv.c:calc_mi_size Line | Count | Source | 1339 | 367k | static inline int calc_mi_size(int len) { | 1340 | | // len is in mi units. Align to a multiple of SBs. | 1341 | 367k | return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2); | 1342 | 367k | } |
Unexecuted instantiation: decodetxb.c:calc_mi_size Unexecuted instantiation: detokenize.c:calc_mi_size Unexecuted instantiation: obu.c:calc_mi_size alloccommon.c:calc_mi_size Line | Count | Source | 1339 | 56.1k | static inline int calc_mi_size(int len) { | 1340 | | // len is in mi units. Align to a multiple of SBs. | 1341 | 56.1k | return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2); | 1342 | 56.1k | } |
Unexecuted instantiation: av1_loopfilter.c:calc_mi_size Unexecuted instantiation: blockd.c:calc_mi_size Unexecuted instantiation: cdef.c:calc_mi_size Unexecuted instantiation: cdef_block.c:calc_mi_size Unexecuted instantiation: cfl.c:calc_mi_size Unexecuted instantiation: convolve.c:calc_mi_size Unexecuted instantiation: entropy.c:calc_mi_size Unexecuted instantiation: entropymode.c:calc_mi_size Unexecuted instantiation: entropymv.c:calc_mi_size Unexecuted instantiation: mvref_common.c:calc_mi_size Unexecuted instantiation: pred_common.c:calc_mi_size Unexecuted instantiation: quant_common.c:calc_mi_size Unexecuted instantiation: reconinter.c:calc_mi_size Unexecuted instantiation: reconintra.c:calc_mi_size Unexecuted instantiation: resize.c:calc_mi_size Unexecuted instantiation: restoration.c:calc_mi_size Unexecuted instantiation: scan.c:calc_mi_size Unexecuted instantiation: thread_common.c:calc_mi_size Unexecuted instantiation: tile_common.c:calc_mi_size Unexecuted instantiation: txb_common.c:calc_mi_size Unexecuted instantiation: warped_motion.c:calc_mi_size Unexecuted instantiation: cfl_sse2.c:calc_mi_size Unexecuted instantiation: resize_sse2.c:calc_mi_size Unexecuted instantiation: cfl_ssse3.c:calc_mi_size Unexecuted instantiation: resize_ssse3.c:calc_mi_size Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:calc_mi_size Unexecuted instantiation: filterintra_sse4.c:calc_mi_size Unexecuted instantiation: cfl_avx2.c:calc_mi_size Unexecuted instantiation: resize_avx2.c:calc_mi_size |
1343 | | |
1344 | | static inline void set_plane_n4(MACROBLOCKD *const xd, int bw, int bh, |
1345 | 22.7M | const int num_planes) { |
1346 | 22.7M | int i; |
1347 | 89.6M | for (i = 0; i < num_planes; i++) { |
1348 | 66.8M | xd->plane[i].width = (bw * MI_SIZE) >> xd->plane[i].subsampling_x; |
1349 | 66.8M | xd->plane[i].height = (bh * MI_SIZE) >> xd->plane[i].subsampling_y; |
1350 | | |
1351 | 66.8M | xd->plane[i].width = AOMMAX(xd->plane[i].width, 4); |
1352 | 66.8M | xd->plane[i].height = AOMMAX(xd->plane[i].height, 4); |
1353 | 66.8M | } |
1354 | 22.7M | } Unexecuted instantiation: av1_dx_iface.c:set_plane_n4 decodeframe.c:set_plane_n4 Line | Count | Source | 1345 | 22.7M | const int num_planes) { | 1346 | 22.7M | int i; | 1347 | 89.6M | for (i = 0; i < num_planes; i++) { | 1348 | 66.8M | xd->plane[i].width = (bw * MI_SIZE) >> xd->plane[i].subsampling_x; | 1349 | 66.8M | xd->plane[i].height = (bh * MI_SIZE) >> xd->plane[i].subsampling_y; | 1350 | | | 1351 | 66.8M | xd->plane[i].width = AOMMAX(xd->plane[i].width, 4); | 1352 | 66.8M | xd->plane[i].height = AOMMAX(xd->plane[i].height, 4); | 1353 | 66.8M | } | 1354 | 22.7M | } |
Unexecuted instantiation: decodemv.c:set_plane_n4 Unexecuted instantiation: decoder.c:set_plane_n4 Unexecuted instantiation: decodetxb.c:set_plane_n4 Unexecuted instantiation: detokenize.c:set_plane_n4 Unexecuted instantiation: obu.c:set_plane_n4 Unexecuted instantiation: alloccommon.c:set_plane_n4 Unexecuted instantiation: av1_loopfilter.c:set_plane_n4 Unexecuted instantiation: blockd.c:set_plane_n4 Unexecuted instantiation: cdef.c:set_plane_n4 Unexecuted instantiation: cdef_block.c:set_plane_n4 Unexecuted instantiation: cfl.c:set_plane_n4 Unexecuted instantiation: convolve.c:set_plane_n4 Unexecuted instantiation: entropy.c:set_plane_n4 Unexecuted instantiation: entropymode.c:set_plane_n4 Unexecuted instantiation: entropymv.c:set_plane_n4 Unexecuted instantiation: mvref_common.c:set_plane_n4 Unexecuted instantiation: pred_common.c:set_plane_n4 Unexecuted instantiation: quant_common.c:set_plane_n4 Unexecuted instantiation: reconinter.c:set_plane_n4 Unexecuted instantiation: reconintra.c:set_plane_n4 Unexecuted instantiation: resize.c:set_plane_n4 Unexecuted instantiation: restoration.c:set_plane_n4 Unexecuted instantiation: scan.c:set_plane_n4 Unexecuted instantiation: thread_common.c:set_plane_n4 Unexecuted instantiation: tile_common.c:set_plane_n4 Unexecuted instantiation: txb_common.c:set_plane_n4 Unexecuted instantiation: warped_motion.c:set_plane_n4 Unexecuted instantiation: cfl_sse2.c:set_plane_n4 Unexecuted instantiation: resize_sse2.c:set_plane_n4 Unexecuted instantiation: cfl_ssse3.c:set_plane_n4 Unexecuted instantiation: resize_ssse3.c:set_plane_n4 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_plane_n4 Unexecuted instantiation: filterintra_sse4.c:set_plane_n4 Unexecuted instantiation: cfl_avx2.c:set_plane_n4 Unexecuted instantiation: resize_avx2.c:set_plane_n4 |
1355 | | |
1356 | | static inline void set_mi_row_col(MACROBLOCKD *xd, const TileInfo *const tile, |
1357 | | int mi_row, int bh, int mi_col, int bw, |
1358 | 22.8M | int mi_rows, int mi_cols) { |
1359 | 22.8M | xd->mb_to_top_edge = -GET_MV_SUBPEL(mi_row * MI_SIZE); |
1360 | 22.8M | xd->mb_to_bottom_edge = GET_MV_SUBPEL((mi_rows - bh - mi_row) * MI_SIZE); |
1361 | 22.8M | xd->mb_to_left_edge = -GET_MV_SUBPEL((mi_col * MI_SIZE)); |
1362 | 22.8M | xd->mb_to_right_edge = GET_MV_SUBPEL((mi_cols - bw - mi_col) * MI_SIZE); |
1363 | | |
1364 | 22.8M | xd->mi_row = mi_row; |
1365 | 22.8M | xd->mi_col = mi_col; |
1366 | | |
1367 | | // Are edges available for intra prediction? |
1368 | 22.8M | xd->up_available = (mi_row > tile->mi_row_start); |
1369 | | |
1370 | 22.8M | const int ss_x = xd->plane[1].subsampling_x; |
1371 | 22.8M | const int ss_y = xd->plane[1].subsampling_y; |
1372 | | |
1373 | 22.8M | xd->left_available = (mi_col > tile->mi_col_start); |
1374 | 22.8M | xd->chroma_up_available = xd->up_available; |
1375 | 22.8M | xd->chroma_left_available = xd->left_available; |
1376 | 22.8M | if (ss_x && bw < mi_size_wide[BLOCK_8X8]) |
1377 | 2.29M | xd->chroma_left_available = (mi_col - 1) > tile->mi_col_start; |
1378 | 22.8M | if (ss_y && bh < mi_size_high[BLOCK_8X8]) |
1379 | 2.71M | xd->chroma_up_available = (mi_row - 1) > tile->mi_row_start; |
1380 | 22.8M | if (xd->up_available) { |
1381 | 21.9M | xd->above_mbmi = xd->mi[-xd->mi_stride]; |
1382 | 21.9M | } else { |
1383 | 886k | xd->above_mbmi = NULL; |
1384 | 886k | } |
1385 | | |
1386 | 22.8M | if (xd->left_available) { |
1387 | 22.1M | xd->left_mbmi = xd->mi[-1]; |
1388 | 22.1M | } else { |
1389 | 678k | xd->left_mbmi = NULL; |
1390 | 678k | } |
1391 | | |
1392 | 22.8M | const int chroma_ref = ((mi_row & 0x01) || !(bh & 0x01) || !ss_y) && |
1393 | 22.8M | ((mi_col & 0x01) || !(bw & 0x01) || !ss_x); |
1394 | 22.8M | xd->is_chroma_ref = chroma_ref; |
1395 | 22.8M | if (chroma_ref) { |
1396 | | // To help calculate the "above" and "left" chroma blocks, note that the |
1397 | | // current block may cover multiple luma blocks (e.g., if partitioned into |
1398 | | // 4x4 luma blocks). |
1399 | | // First, find the top-left-most luma block covered by this chroma block |
1400 | 20.4M | MB_MODE_INFO **base_mi = |
1401 | 20.4M | &xd->mi[-(mi_row & ss_y) * xd->mi_stride - (mi_col & ss_x)]; |
1402 | | |
1403 | | // Then, we consider the luma region covered by the left or above 4x4 chroma |
1404 | | // prediction. We want to point to the chroma reference block in that |
1405 | | // region, which is the bottom-right-most mi unit. |
1406 | | // This leads to the following offsets: |
1407 | 20.4M | MB_MODE_INFO *chroma_above_mi = |
1408 | 20.4M | xd->chroma_up_available ? base_mi[-xd->mi_stride + ss_x] : NULL; |
1409 | 20.4M | xd->chroma_above_mbmi = chroma_above_mi; |
1410 | | |
1411 | 20.4M | MB_MODE_INFO *chroma_left_mi = |
1412 | 20.4M | xd->chroma_left_available ? base_mi[ss_y * xd->mi_stride - 1] : NULL; |
1413 | 20.4M | xd->chroma_left_mbmi = chroma_left_mi; |
1414 | 20.4M | } |
1415 | | |
1416 | 22.8M | xd->height = bh; |
1417 | 22.8M | xd->width = bw; |
1418 | | |
1419 | 22.8M | xd->is_last_vertical_rect = 0; |
1420 | 22.8M | if (xd->width < xd->height) { |
1421 | 5.18M | if (!((mi_col + xd->width) & (xd->height - 1))) { |
1422 | 1.88M | xd->is_last_vertical_rect = 1; |
1423 | 1.88M | } |
1424 | 5.18M | } |
1425 | | |
1426 | 22.8M | xd->is_first_horizontal_rect = 0; |
1427 | 22.8M | if (xd->width > xd->height) |
1428 | 8.60M | if (!(mi_row & (xd->width - 1))) xd->is_first_horizontal_rect = 1; |
1429 | 22.8M | } Unexecuted instantiation: av1_dx_iface.c:set_mi_row_col decodeframe.c:set_mi_row_col Line | Count | Source | 1358 | 22.8M | int mi_rows, int mi_cols) { | 1359 | 22.8M | xd->mb_to_top_edge = -GET_MV_SUBPEL(mi_row * MI_SIZE); | 1360 | 22.8M | xd->mb_to_bottom_edge = GET_MV_SUBPEL((mi_rows - bh - mi_row) * MI_SIZE); | 1361 | 22.8M | xd->mb_to_left_edge = -GET_MV_SUBPEL((mi_col * MI_SIZE)); | 1362 | 22.8M | xd->mb_to_right_edge = GET_MV_SUBPEL((mi_cols - bw - mi_col) * MI_SIZE); | 1363 | | | 1364 | 22.8M | xd->mi_row = mi_row; | 1365 | 22.8M | xd->mi_col = mi_col; | 1366 | | | 1367 | | // Are edges available for intra prediction? | 1368 | 22.8M | xd->up_available = (mi_row > tile->mi_row_start); | 1369 | | | 1370 | 22.8M | const int ss_x = xd->plane[1].subsampling_x; | 1371 | 22.8M | const int ss_y = xd->plane[1].subsampling_y; | 1372 | | | 1373 | 22.8M | xd->left_available = (mi_col > tile->mi_col_start); | 1374 | 22.8M | xd->chroma_up_available = xd->up_available; | 1375 | 22.8M | xd->chroma_left_available = xd->left_available; | 1376 | 22.8M | if (ss_x && bw < mi_size_wide[BLOCK_8X8]) | 1377 | 2.29M | xd->chroma_left_available = (mi_col - 1) > tile->mi_col_start; | 1378 | 22.8M | if (ss_y && bh < mi_size_high[BLOCK_8X8]) | 1379 | 2.71M | xd->chroma_up_available = (mi_row - 1) > tile->mi_row_start; | 1380 | 22.8M | if (xd->up_available) { | 1381 | 21.9M | xd->above_mbmi = xd->mi[-xd->mi_stride]; | 1382 | 21.9M | } else { | 1383 | 886k | xd->above_mbmi = NULL; | 1384 | 886k | } | 1385 | | | 1386 | 22.8M | if (xd->left_available) { | 1387 | 22.1M | xd->left_mbmi = xd->mi[-1]; | 1388 | 22.1M | } else { | 1389 | 678k | xd->left_mbmi = NULL; | 1390 | 678k | } | 1391 | | | 1392 | 22.8M | const int chroma_ref = ((mi_row & 0x01) || !(bh & 0x01) || !ss_y) && | 1393 | 22.8M | ((mi_col & 0x01) || !(bw & 0x01) || !ss_x); | 1394 | 22.8M | xd->is_chroma_ref = chroma_ref; | 1395 | 22.8M | if (chroma_ref) { | 1396 | | // To help calculate the "above" and "left" chroma blocks, note that the | 1397 | | // current block may cover multiple luma blocks (e.g., if partitioned into | 1398 | | // 4x4 luma blocks). | 1399 | | // First, find the top-left-most luma block covered by this chroma block | 1400 | 20.4M | MB_MODE_INFO **base_mi = | 1401 | 20.4M | &xd->mi[-(mi_row & ss_y) * xd->mi_stride - (mi_col & ss_x)]; | 1402 | | | 1403 | | // Then, we consider the luma region covered by the left or above 4x4 chroma | 1404 | | // prediction. We want to point to the chroma reference block in that | 1405 | | // region, which is the bottom-right-most mi unit. | 1406 | | // This leads to the following offsets: | 1407 | 20.4M | MB_MODE_INFO *chroma_above_mi = | 1408 | 20.4M | xd->chroma_up_available ? base_mi[-xd->mi_stride + ss_x] : NULL; | 1409 | 20.4M | xd->chroma_above_mbmi = chroma_above_mi; | 1410 | | | 1411 | 20.4M | MB_MODE_INFO *chroma_left_mi = | 1412 | 20.4M | xd->chroma_left_available ? base_mi[ss_y * xd->mi_stride - 1] : NULL; | 1413 | 20.4M | xd->chroma_left_mbmi = chroma_left_mi; | 1414 | 20.4M | } | 1415 | | | 1416 | 22.8M | xd->height = bh; | 1417 | 22.8M | xd->width = bw; | 1418 | | | 1419 | 22.8M | xd->is_last_vertical_rect = 0; | 1420 | 22.8M | if (xd->width < xd->height) { | 1421 | 5.18M | if (!((mi_col + xd->width) & (xd->height - 1))) { | 1422 | 1.88M | xd->is_last_vertical_rect = 1; | 1423 | 1.88M | } | 1424 | 5.18M | } | 1425 | | | 1426 | 22.8M | xd->is_first_horizontal_rect = 0; | 1427 | 22.8M | if (xd->width > xd->height) | 1428 | 8.60M | if (!(mi_row & (xd->width - 1))) xd->is_first_horizontal_rect = 1; | 1429 | 22.8M | } |
Unexecuted instantiation: decodemv.c:set_mi_row_col Unexecuted instantiation: decoder.c:set_mi_row_col Unexecuted instantiation: decodetxb.c:set_mi_row_col Unexecuted instantiation: detokenize.c:set_mi_row_col Unexecuted instantiation: obu.c:set_mi_row_col Unexecuted instantiation: alloccommon.c:set_mi_row_col Unexecuted instantiation: av1_loopfilter.c:set_mi_row_col Unexecuted instantiation: blockd.c:set_mi_row_col Unexecuted instantiation: cdef.c:set_mi_row_col Unexecuted instantiation: cdef_block.c:set_mi_row_col Unexecuted instantiation: cfl.c:set_mi_row_col Unexecuted instantiation: convolve.c:set_mi_row_col Unexecuted instantiation: entropy.c:set_mi_row_col Unexecuted instantiation: entropymode.c:set_mi_row_col Unexecuted instantiation: entropymv.c:set_mi_row_col Unexecuted instantiation: mvref_common.c:set_mi_row_col Unexecuted instantiation: pred_common.c:set_mi_row_col Unexecuted instantiation: quant_common.c:set_mi_row_col Unexecuted instantiation: reconinter.c:set_mi_row_col Unexecuted instantiation: reconintra.c:set_mi_row_col Unexecuted instantiation: resize.c:set_mi_row_col Unexecuted instantiation: restoration.c:set_mi_row_col Unexecuted instantiation: scan.c:set_mi_row_col Unexecuted instantiation: thread_common.c:set_mi_row_col Unexecuted instantiation: tile_common.c:set_mi_row_col Unexecuted instantiation: txb_common.c:set_mi_row_col Unexecuted instantiation: warped_motion.c:set_mi_row_col Unexecuted instantiation: cfl_sse2.c:set_mi_row_col Unexecuted instantiation: resize_sse2.c:set_mi_row_col Unexecuted instantiation: cfl_ssse3.c:set_mi_row_col Unexecuted instantiation: resize_ssse3.c:set_mi_row_col Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_mi_row_col Unexecuted instantiation: filterintra_sse4.c:set_mi_row_col Unexecuted instantiation: cfl_avx2.c:set_mi_row_col Unexecuted instantiation: resize_avx2.c:set_mi_row_col |
1430 | | |
1431 | | static inline aom_cdf_prob *get_y_mode_cdf(FRAME_CONTEXT *tile_ctx, |
1432 | | const MB_MODE_INFO *above_mi, |
1433 | 9.19M | const MB_MODE_INFO *left_mi) { |
1434 | 9.19M | const PREDICTION_MODE above = av1_above_block_mode(above_mi); |
1435 | 9.19M | const PREDICTION_MODE left = av1_left_block_mode(left_mi); |
1436 | 9.19M | const int above_ctx = intra_mode_context[above]; |
1437 | 9.19M | const int left_ctx = intra_mode_context[left]; |
1438 | 9.19M | return tile_ctx->kf_y_cdf[above_ctx][left_ctx]; |
1439 | 9.19M | } Unexecuted instantiation: av1_dx_iface.c:get_y_mode_cdf Unexecuted instantiation: decodeframe.c:get_y_mode_cdf decodemv.c:get_y_mode_cdf Line | Count | Source | 1433 | 9.19M | const MB_MODE_INFO *left_mi) { | 1434 | 9.19M | const PREDICTION_MODE above = av1_above_block_mode(above_mi); | 1435 | 9.19M | const PREDICTION_MODE left = av1_left_block_mode(left_mi); | 1436 | 9.19M | const int above_ctx = intra_mode_context[above]; | 1437 | 9.19M | const int left_ctx = intra_mode_context[left]; | 1438 | 9.19M | return tile_ctx->kf_y_cdf[above_ctx][left_ctx]; | 1439 | 9.19M | } |
Unexecuted instantiation: decoder.c:get_y_mode_cdf Unexecuted instantiation: decodetxb.c:get_y_mode_cdf Unexecuted instantiation: detokenize.c:get_y_mode_cdf Unexecuted instantiation: obu.c:get_y_mode_cdf Unexecuted instantiation: alloccommon.c:get_y_mode_cdf Unexecuted instantiation: av1_loopfilter.c:get_y_mode_cdf Unexecuted instantiation: blockd.c:get_y_mode_cdf Unexecuted instantiation: cdef.c:get_y_mode_cdf Unexecuted instantiation: cdef_block.c:get_y_mode_cdf Unexecuted instantiation: cfl.c:get_y_mode_cdf Unexecuted instantiation: convolve.c:get_y_mode_cdf Unexecuted instantiation: entropy.c:get_y_mode_cdf Unexecuted instantiation: entropymode.c:get_y_mode_cdf Unexecuted instantiation: entropymv.c:get_y_mode_cdf Unexecuted instantiation: mvref_common.c:get_y_mode_cdf Unexecuted instantiation: pred_common.c:get_y_mode_cdf Unexecuted instantiation: quant_common.c:get_y_mode_cdf Unexecuted instantiation: reconinter.c:get_y_mode_cdf Unexecuted instantiation: reconintra.c:get_y_mode_cdf Unexecuted instantiation: resize.c:get_y_mode_cdf Unexecuted instantiation: restoration.c:get_y_mode_cdf Unexecuted instantiation: scan.c:get_y_mode_cdf Unexecuted instantiation: thread_common.c:get_y_mode_cdf Unexecuted instantiation: tile_common.c:get_y_mode_cdf Unexecuted instantiation: txb_common.c:get_y_mode_cdf Unexecuted instantiation: warped_motion.c:get_y_mode_cdf Unexecuted instantiation: cfl_sse2.c:get_y_mode_cdf Unexecuted instantiation: resize_sse2.c:get_y_mode_cdf Unexecuted instantiation: cfl_ssse3.c:get_y_mode_cdf Unexecuted instantiation: resize_ssse3.c:get_y_mode_cdf Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_y_mode_cdf Unexecuted instantiation: filterintra_sse4.c:get_y_mode_cdf Unexecuted instantiation: cfl_avx2.c:get_y_mode_cdf Unexecuted instantiation: resize_avx2.c:get_y_mode_cdf |
1440 | | |
1441 | | static inline void update_partition_context(MACROBLOCKD *xd, int mi_row, |
1442 | | int mi_col, BLOCK_SIZE subsize, |
1443 | 8.85M | BLOCK_SIZE bsize) { |
1444 | 8.85M | PARTITION_CONTEXT *const above_ctx = xd->above_partition_context + mi_col; |
1445 | 8.85M | PARTITION_CONTEXT *const left_ctx = |
1446 | 8.85M | xd->left_partition_context + (mi_row & MAX_MIB_MASK); |
1447 | | |
1448 | 8.85M | const int bw = mi_size_wide[bsize]; |
1449 | 8.85M | const int bh = mi_size_high[bsize]; |
1450 | 8.85M | memset(above_ctx, partition_context_lookup[subsize].above, bw); |
1451 | 8.85M | memset(left_ctx, partition_context_lookup[subsize].left, bh); |
1452 | 8.85M | } Unexecuted instantiation: av1_dx_iface.c:update_partition_context decodeframe.c:update_partition_context Line | Count | Source | 1443 | 8.85M | BLOCK_SIZE bsize) { | 1444 | 8.85M | PARTITION_CONTEXT *const above_ctx = xd->above_partition_context + mi_col; | 1445 | 8.85M | PARTITION_CONTEXT *const left_ctx = | 1446 | 8.85M | xd->left_partition_context + (mi_row & MAX_MIB_MASK); | 1447 | | | 1448 | 8.85M | const int bw = mi_size_wide[bsize]; | 1449 | 8.85M | const int bh = mi_size_high[bsize]; | 1450 | 8.85M | memset(above_ctx, partition_context_lookup[subsize].above, bw); | 1451 | 8.85M | memset(left_ctx, partition_context_lookup[subsize].left, bh); | 1452 | 8.85M | } |
Unexecuted instantiation: decodemv.c:update_partition_context Unexecuted instantiation: decoder.c:update_partition_context Unexecuted instantiation: decodetxb.c:update_partition_context Unexecuted instantiation: detokenize.c:update_partition_context Unexecuted instantiation: obu.c:update_partition_context Unexecuted instantiation: alloccommon.c:update_partition_context Unexecuted instantiation: av1_loopfilter.c:update_partition_context Unexecuted instantiation: blockd.c:update_partition_context Unexecuted instantiation: cdef.c:update_partition_context Unexecuted instantiation: cdef_block.c:update_partition_context Unexecuted instantiation: cfl.c:update_partition_context Unexecuted instantiation: convolve.c:update_partition_context Unexecuted instantiation: entropy.c:update_partition_context Unexecuted instantiation: entropymode.c:update_partition_context Unexecuted instantiation: entropymv.c:update_partition_context Unexecuted instantiation: mvref_common.c:update_partition_context Unexecuted instantiation: pred_common.c:update_partition_context Unexecuted instantiation: quant_common.c:update_partition_context Unexecuted instantiation: reconinter.c:update_partition_context Unexecuted instantiation: reconintra.c:update_partition_context Unexecuted instantiation: resize.c:update_partition_context Unexecuted instantiation: restoration.c:update_partition_context Unexecuted instantiation: scan.c:update_partition_context Unexecuted instantiation: thread_common.c:update_partition_context Unexecuted instantiation: tile_common.c:update_partition_context Unexecuted instantiation: txb_common.c:update_partition_context Unexecuted instantiation: warped_motion.c:update_partition_context Unexecuted instantiation: cfl_sse2.c:update_partition_context Unexecuted instantiation: resize_sse2.c:update_partition_context Unexecuted instantiation: cfl_ssse3.c:update_partition_context Unexecuted instantiation: resize_ssse3.c:update_partition_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:update_partition_context Unexecuted instantiation: filterintra_sse4.c:update_partition_context Unexecuted instantiation: cfl_avx2.c:update_partition_context Unexecuted instantiation: resize_avx2.c:update_partition_context |
1453 | | |
1454 | | static inline int is_chroma_reference(int mi_row, int mi_col, BLOCK_SIZE bsize, |
1455 | 0 | int subsampling_x, int subsampling_y) { |
1456 | 0 | assert(bsize < BLOCK_SIZES_ALL); |
1457 | 0 | const int bw = mi_size_wide[bsize]; |
1458 | 0 | const int bh = mi_size_high[bsize]; |
1459 | 0 | int ref_pos = ((mi_row & 0x01) || !(bh & 0x01) || !subsampling_y) && |
1460 | 0 | ((mi_col & 0x01) || !(bw & 0x01) || !subsampling_x); |
1461 | 0 | return ref_pos; |
1462 | 0 | } Unexecuted instantiation: av1_dx_iface.c:is_chroma_reference Unexecuted instantiation: decodeframe.c:is_chroma_reference Unexecuted instantiation: decodemv.c:is_chroma_reference Unexecuted instantiation: decoder.c:is_chroma_reference Unexecuted instantiation: decodetxb.c:is_chroma_reference Unexecuted instantiation: detokenize.c:is_chroma_reference Unexecuted instantiation: obu.c:is_chroma_reference Unexecuted instantiation: alloccommon.c:is_chroma_reference Unexecuted instantiation: av1_loopfilter.c:is_chroma_reference Unexecuted instantiation: blockd.c:is_chroma_reference Unexecuted instantiation: cdef.c:is_chroma_reference Unexecuted instantiation: cdef_block.c:is_chroma_reference Unexecuted instantiation: cfl.c:is_chroma_reference Unexecuted instantiation: convolve.c:is_chroma_reference Unexecuted instantiation: entropy.c:is_chroma_reference Unexecuted instantiation: entropymode.c:is_chroma_reference Unexecuted instantiation: entropymv.c:is_chroma_reference Unexecuted instantiation: mvref_common.c:is_chroma_reference Unexecuted instantiation: pred_common.c:is_chroma_reference Unexecuted instantiation: quant_common.c:is_chroma_reference Unexecuted instantiation: reconinter.c:is_chroma_reference Unexecuted instantiation: reconintra.c:is_chroma_reference Unexecuted instantiation: resize.c:is_chroma_reference Unexecuted instantiation: restoration.c:is_chroma_reference Unexecuted instantiation: scan.c:is_chroma_reference Unexecuted instantiation: thread_common.c:is_chroma_reference Unexecuted instantiation: tile_common.c:is_chroma_reference Unexecuted instantiation: txb_common.c:is_chroma_reference Unexecuted instantiation: warped_motion.c:is_chroma_reference Unexecuted instantiation: cfl_sse2.c:is_chroma_reference Unexecuted instantiation: resize_sse2.c:is_chroma_reference Unexecuted instantiation: cfl_ssse3.c:is_chroma_reference Unexecuted instantiation: resize_ssse3.c:is_chroma_reference Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_chroma_reference Unexecuted instantiation: filterintra_sse4.c:is_chroma_reference Unexecuted instantiation: cfl_avx2.c:is_chroma_reference Unexecuted instantiation: resize_avx2.c:is_chroma_reference |
1463 | | |
1464 | | static inline aom_cdf_prob cdf_element_prob(const aom_cdf_prob *cdf, |
1465 | 1.81M | size_t element) { |
1466 | 1.81M | assert(cdf != NULL); |
1467 | 18.4E | return (element > 0 ? cdf[element - 1] : CDF_PROB_TOP) - cdf[element]; |
1468 | 1.81M | } Unexecuted instantiation: av1_dx_iface.c:cdf_element_prob decodeframe.c:cdf_element_prob Line | Count | Source | 1465 | 1.81M | size_t element) { | 1466 | 1.81M | assert(cdf != NULL); | 1467 | 18.4E | return (element > 0 ? cdf[element - 1] : CDF_PROB_TOP) - cdf[element]; | 1468 | 1.81M | } |
Unexecuted instantiation: decodemv.c:cdf_element_prob Unexecuted instantiation: decoder.c:cdf_element_prob Unexecuted instantiation: decodetxb.c:cdf_element_prob Unexecuted instantiation: detokenize.c:cdf_element_prob Unexecuted instantiation: obu.c:cdf_element_prob Unexecuted instantiation: alloccommon.c:cdf_element_prob Unexecuted instantiation: av1_loopfilter.c:cdf_element_prob Unexecuted instantiation: blockd.c:cdf_element_prob Unexecuted instantiation: cdef.c:cdf_element_prob Unexecuted instantiation: cdef_block.c:cdf_element_prob Unexecuted instantiation: cfl.c:cdf_element_prob Unexecuted instantiation: convolve.c:cdf_element_prob Unexecuted instantiation: entropy.c:cdf_element_prob Unexecuted instantiation: entropymode.c:cdf_element_prob Unexecuted instantiation: entropymv.c:cdf_element_prob Unexecuted instantiation: mvref_common.c:cdf_element_prob Unexecuted instantiation: pred_common.c:cdf_element_prob Unexecuted instantiation: quant_common.c:cdf_element_prob Unexecuted instantiation: reconinter.c:cdf_element_prob Unexecuted instantiation: reconintra.c:cdf_element_prob Unexecuted instantiation: resize.c:cdf_element_prob Unexecuted instantiation: restoration.c:cdf_element_prob Unexecuted instantiation: scan.c:cdf_element_prob Unexecuted instantiation: thread_common.c:cdf_element_prob Unexecuted instantiation: tile_common.c:cdf_element_prob Unexecuted instantiation: txb_common.c:cdf_element_prob Unexecuted instantiation: warped_motion.c:cdf_element_prob Unexecuted instantiation: cfl_sse2.c:cdf_element_prob Unexecuted instantiation: resize_sse2.c:cdf_element_prob Unexecuted instantiation: cfl_ssse3.c:cdf_element_prob Unexecuted instantiation: resize_ssse3.c:cdf_element_prob Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:cdf_element_prob Unexecuted instantiation: filterintra_sse4.c:cdf_element_prob Unexecuted instantiation: cfl_avx2.c:cdf_element_prob Unexecuted instantiation: resize_avx2.c:cdf_element_prob |
1469 | | |
1470 | | static inline void partition_gather_horz_alike(aom_cdf_prob *out, |
1471 | | const aom_cdf_prob *const in, |
1472 | 203k | BLOCK_SIZE bsize) { |
1473 | 203k | (void)bsize; |
1474 | 203k | out[0] = CDF_PROB_TOP; |
1475 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ); |
1476 | 203k | out[0] -= cdf_element_prob(in, PARTITION_SPLIT); |
1477 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_A); |
1478 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_B); |
1479 | 203k | out[0] -= cdf_element_prob(in, PARTITION_VERT_A); |
1480 | 203k | if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_HORZ_4); |
1481 | 203k | out[0] = AOM_ICDF(out[0]); |
1482 | 203k | out[1] = AOM_ICDF(CDF_PROB_TOP); |
1483 | 203k | } Unexecuted instantiation: av1_dx_iface.c:partition_gather_horz_alike decodeframe.c:partition_gather_horz_alike Line | Count | Source | 1472 | 203k | BLOCK_SIZE bsize) { | 1473 | 203k | (void)bsize; | 1474 | 203k | out[0] = CDF_PROB_TOP; | 1475 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ); | 1476 | 203k | out[0] -= cdf_element_prob(in, PARTITION_SPLIT); | 1477 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_A); | 1478 | 203k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_B); | 1479 | 203k | out[0] -= cdf_element_prob(in, PARTITION_VERT_A); | 1480 | 203k | if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_HORZ_4); | 1481 | 203k | out[0] = AOM_ICDF(out[0]); | 1482 | 203k | out[1] = AOM_ICDF(CDF_PROB_TOP); | 1483 | 203k | } |
Unexecuted instantiation: decodemv.c:partition_gather_horz_alike Unexecuted instantiation: decoder.c:partition_gather_horz_alike Unexecuted instantiation: decodetxb.c:partition_gather_horz_alike Unexecuted instantiation: detokenize.c:partition_gather_horz_alike Unexecuted instantiation: obu.c:partition_gather_horz_alike Unexecuted instantiation: alloccommon.c:partition_gather_horz_alike Unexecuted instantiation: av1_loopfilter.c:partition_gather_horz_alike Unexecuted instantiation: blockd.c:partition_gather_horz_alike Unexecuted instantiation: cdef.c:partition_gather_horz_alike Unexecuted instantiation: cdef_block.c:partition_gather_horz_alike Unexecuted instantiation: cfl.c:partition_gather_horz_alike Unexecuted instantiation: convolve.c:partition_gather_horz_alike Unexecuted instantiation: entropy.c:partition_gather_horz_alike Unexecuted instantiation: entropymode.c:partition_gather_horz_alike Unexecuted instantiation: entropymv.c:partition_gather_horz_alike Unexecuted instantiation: mvref_common.c:partition_gather_horz_alike Unexecuted instantiation: pred_common.c:partition_gather_horz_alike Unexecuted instantiation: quant_common.c:partition_gather_horz_alike Unexecuted instantiation: reconinter.c:partition_gather_horz_alike Unexecuted instantiation: reconintra.c:partition_gather_horz_alike Unexecuted instantiation: resize.c:partition_gather_horz_alike Unexecuted instantiation: restoration.c:partition_gather_horz_alike Unexecuted instantiation: scan.c:partition_gather_horz_alike Unexecuted instantiation: thread_common.c:partition_gather_horz_alike Unexecuted instantiation: tile_common.c:partition_gather_horz_alike Unexecuted instantiation: txb_common.c:partition_gather_horz_alike Unexecuted instantiation: warped_motion.c:partition_gather_horz_alike Unexecuted instantiation: cfl_sse2.c:partition_gather_horz_alike Unexecuted instantiation: resize_sse2.c:partition_gather_horz_alike Unexecuted instantiation: cfl_ssse3.c:partition_gather_horz_alike Unexecuted instantiation: resize_ssse3.c:partition_gather_horz_alike Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_gather_horz_alike Unexecuted instantiation: filterintra_sse4.c:partition_gather_horz_alike Unexecuted instantiation: cfl_avx2.c:partition_gather_horz_alike Unexecuted instantiation: resize_avx2.c:partition_gather_horz_alike |
1484 | | |
1485 | | static inline void partition_gather_vert_alike(aom_cdf_prob *out, |
1486 | | const aom_cdf_prob *const in, |
1487 | 119k | BLOCK_SIZE bsize) { |
1488 | 119k | (void)bsize; |
1489 | 119k | out[0] = CDF_PROB_TOP; |
1490 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT); |
1491 | 119k | out[0] -= cdf_element_prob(in, PARTITION_SPLIT); |
1492 | 119k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_A); |
1493 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT_A); |
1494 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT_B); |
1495 | 119k | if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_VERT_4); |
1496 | 119k | out[0] = AOM_ICDF(out[0]); |
1497 | 119k | out[1] = AOM_ICDF(CDF_PROB_TOP); |
1498 | 119k | } Unexecuted instantiation: av1_dx_iface.c:partition_gather_vert_alike decodeframe.c:partition_gather_vert_alike Line | Count | Source | 1487 | 119k | BLOCK_SIZE bsize) { | 1488 | 119k | (void)bsize; | 1489 | 119k | out[0] = CDF_PROB_TOP; | 1490 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT); | 1491 | 119k | out[0] -= cdf_element_prob(in, PARTITION_SPLIT); | 1492 | 119k | out[0] -= cdf_element_prob(in, PARTITION_HORZ_A); | 1493 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT_A); | 1494 | 119k | out[0] -= cdf_element_prob(in, PARTITION_VERT_B); | 1495 | 119k | if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_VERT_4); | 1496 | 119k | out[0] = AOM_ICDF(out[0]); | 1497 | 119k | out[1] = AOM_ICDF(CDF_PROB_TOP); | 1498 | 119k | } |
Unexecuted instantiation: decodemv.c:partition_gather_vert_alike Unexecuted instantiation: decoder.c:partition_gather_vert_alike Unexecuted instantiation: decodetxb.c:partition_gather_vert_alike Unexecuted instantiation: detokenize.c:partition_gather_vert_alike Unexecuted instantiation: obu.c:partition_gather_vert_alike Unexecuted instantiation: alloccommon.c:partition_gather_vert_alike Unexecuted instantiation: av1_loopfilter.c:partition_gather_vert_alike Unexecuted instantiation: blockd.c:partition_gather_vert_alike Unexecuted instantiation: cdef.c:partition_gather_vert_alike Unexecuted instantiation: cdef_block.c:partition_gather_vert_alike Unexecuted instantiation: cfl.c:partition_gather_vert_alike Unexecuted instantiation: convolve.c:partition_gather_vert_alike Unexecuted instantiation: entropy.c:partition_gather_vert_alike Unexecuted instantiation: entropymode.c:partition_gather_vert_alike Unexecuted instantiation: entropymv.c:partition_gather_vert_alike Unexecuted instantiation: mvref_common.c:partition_gather_vert_alike Unexecuted instantiation: pred_common.c:partition_gather_vert_alike Unexecuted instantiation: quant_common.c:partition_gather_vert_alike Unexecuted instantiation: reconinter.c:partition_gather_vert_alike Unexecuted instantiation: reconintra.c:partition_gather_vert_alike Unexecuted instantiation: resize.c:partition_gather_vert_alike Unexecuted instantiation: restoration.c:partition_gather_vert_alike Unexecuted instantiation: scan.c:partition_gather_vert_alike Unexecuted instantiation: thread_common.c:partition_gather_vert_alike Unexecuted instantiation: tile_common.c:partition_gather_vert_alike Unexecuted instantiation: txb_common.c:partition_gather_vert_alike Unexecuted instantiation: warped_motion.c:partition_gather_vert_alike Unexecuted instantiation: cfl_sse2.c:partition_gather_vert_alike Unexecuted instantiation: resize_sse2.c:partition_gather_vert_alike Unexecuted instantiation: cfl_ssse3.c:partition_gather_vert_alike Unexecuted instantiation: resize_ssse3.c:partition_gather_vert_alike Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_gather_vert_alike Unexecuted instantiation: filterintra_sse4.c:partition_gather_vert_alike Unexecuted instantiation: cfl_avx2.c:partition_gather_vert_alike Unexecuted instantiation: resize_avx2.c:partition_gather_vert_alike |
1499 | | |
1500 | | static inline void update_ext_partition_context(MACROBLOCKD *xd, int mi_row, |
1501 | | int mi_col, BLOCK_SIZE subsize, |
1502 | | BLOCK_SIZE bsize, |
1503 | 11.3M | PARTITION_TYPE partition) { |
1504 | 11.3M | if (bsize >= BLOCK_8X8) { |
1505 | 10.5M | const int hbs = mi_size_wide[bsize] / 2; |
1506 | 10.5M | BLOCK_SIZE bsize2 = get_partition_subsize(bsize, PARTITION_SPLIT); |
1507 | 10.5M | switch (partition) { |
1508 | 2.67M | case PARTITION_SPLIT: |
1509 | 2.67M | if (bsize != BLOCK_8X8) break; |
1510 | 187k | AOM_FALLTHROUGH_INTENDED; |
1511 | 3.97M | case PARTITION_NONE: |
1512 | 5.26M | case PARTITION_HORZ: |
1513 | 6.12M | case PARTITION_VERT: |
1514 | 6.80M | case PARTITION_HORZ_4: |
1515 | 7.27M | case PARTITION_VERT_4: |
1516 | 7.27M | update_partition_context(xd, mi_row, mi_col, subsize, bsize); |
1517 | 7.27M | break; |
1518 | 242k | case PARTITION_HORZ_A: |
1519 | 242k | update_partition_context(xd, mi_row, mi_col, bsize2, subsize); |
1520 | 242k | update_partition_context(xd, mi_row + hbs, mi_col, subsize, subsize); |
1521 | 242k | break; |
1522 | 215k | case PARTITION_HORZ_B: |
1523 | 215k | update_partition_context(xd, mi_row, mi_col, subsize, subsize); |
1524 | 215k | update_partition_context(xd, mi_row + hbs, mi_col, bsize2, subsize); |
1525 | 215k | break; |
1526 | 155k | case PARTITION_VERT_A: |
1527 | 155k | update_partition_context(xd, mi_row, mi_col, bsize2, subsize); |
1528 | 155k | update_partition_context(xd, mi_row, mi_col + hbs, subsize, subsize); |
1529 | 155k | break; |
1530 | 175k | case PARTITION_VERT_B: |
1531 | 175k | update_partition_context(xd, mi_row, mi_col, subsize, subsize); |
1532 | 175k | update_partition_context(xd, mi_row, mi_col + hbs, bsize2, subsize); |
1533 | 175k | break; |
1534 | 0 | default: assert(0 && "Invalid partition type"); |
1535 | 10.5M | } |
1536 | 10.5M | } |
1537 | 11.3M | } Unexecuted instantiation: av1_dx_iface.c:update_ext_partition_context decodeframe.c:update_ext_partition_context Line | Count | Source | 1503 | 11.3M | PARTITION_TYPE partition) { | 1504 | 11.3M | if (bsize >= BLOCK_8X8) { | 1505 | 10.5M | const int hbs = mi_size_wide[bsize] / 2; | 1506 | 10.5M | BLOCK_SIZE bsize2 = get_partition_subsize(bsize, PARTITION_SPLIT); | 1507 | 10.5M | switch (partition) { | 1508 | 2.67M | case PARTITION_SPLIT: | 1509 | 2.67M | if (bsize != BLOCK_8X8) break; | 1510 | 187k | AOM_FALLTHROUGH_INTENDED; | 1511 | 3.97M | case PARTITION_NONE: | 1512 | 5.26M | case PARTITION_HORZ: | 1513 | 6.12M | case PARTITION_VERT: | 1514 | 6.80M | case PARTITION_HORZ_4: | 1515 | 7.27M | case PARTITION_VERT_4: | 1516 | 7.27M | update_partition_context(xd, mi_row, mi_col, subsize, bsize); | 1517 | 7.27M | break; | 1518 | 242k | case PARTITION_HORZ_A: | 1519 | 242k | update_partition_context(xd, mi_row, mi_col, bsize2, subsize); | 1520 | 242k | update_partition_context(xd, mi_row + hbs, mi_col, subsize, subsize); | 1521 | 242k | break; | 1522 | 215k | case PARTITION_HORZ_B: | 1523 | 215k | update_partition_context(xd, mi_row, mi_col, subsize, subsize); | 1524 | 215k | update_partition_context(xd, mi_row + hbs, mi_col, bsize2, subsize); | 1525 | 215k | break; | 1526 | 155k | case PARTITION_VERT_A: | 1527 | 155k | update_partition_context(xd, mi_row, mi_col, bsize2, subsize); | 1528 | 155k | update_partition_context(xd, mi_row, mi_col + hbs, subsize, subsize); | 1529 | 155k | break; | 1530 | 175k | case PARTITION_VERT_B: | 1531 | 175k | update_partition_context(xd, mi_row, mi_col, subsize, subsize); | 1532 | 175k | update_partition_context(xd, mi_row, mi_col + hbs, bsize2, subsize); | 1533 | 175k | break; | 1534 | 0 | default: assert(0 && "Invalid partition type"); | 1535 | 10.5M | } | 1536 | 10.5M | } | 1537 | 11.3M | } |
Unexecuted instantiation: decodemv.c:update_ext_partition_context Unexecuted instantiation: decoder.c:update_ext_partition_context Unexecuted instantiation: decodetxb.c:update_ext_partition_context Unexecuted instantiation: detokenize.c:update_ext_partition_context Unexecuted instantiation: obu.c:update_ext_partition_context Unexecuted instantiation: alloccommon.c:update_ext_partition_context Unexecuted instantiation: av1_loopfilter.c:update_ext_partition_context Unexecuted instantiation: blockd.c:update_ext_partition_context Unexecuted instantiation: cdef.c:update_ext_partition_context Unexecuted instantiation: cdef_block.c:update_ext_partition_context Unexecuted instantiation: cfl.c:update_ext_partition_context Unexecuted instantiation: convolve.c:update_ext_partition_context Unexecuted instantiation: entropy.c:update_ext_partition_context Unexecuted instantiation: entropymode.c:update_ext_partition_context Unexecuted instantiation: entropymv.c:update_ext_partition_context Unexecuted instantiation: mvref_common.c:update_ext_partition_context Unexecuted instantiation: pred_common.c:update_ext_partition_context Unexecuted instantiation: quant_common.c:update_ext_partition_context Unexecuted instantiation: reconinter.c:update_ext_partition_context Unexecuted instantiation: reconintra.c:update_ext_partition_context Unexecuted instantiation: resize.c:update_ext_partition_context Unexecuted instantiation: restoration.c:update_ext_partition_context Unexecuted instantiation: scan.c:update_ext_partition_context Unexecuted instantiation: thread_common.c:update_ext_partition_context Unexecuted instantiation: tile_common.c:update_ext_partition_context Unexecuted instantiation: txb_common.c:update_ext_partition_context Unexecuted instantiation: warped_motion.c:update_ext_partition_context Unexecuted instantiation: cfl_sse2.c:update_ext_partition_context Unexecuted instantiation: resize_sse2.c:update_ext_partition_context Unexecuted instantiation: cfl_ssse3.c:update_ext_partition_context Unexecuted instantiation: resize_ssse3.c:update_ext_partition_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:update_ext_partition_context Unexecuted instantiation: filterintra_sse4.c:update_ext_partition_context Unexecuted instantiation: cfl_avx2.c:update_ext_partition_context Unexecuted instantiation: resize_avx2.c:update_ext_partition_context |
1538 | | |
1539 | | static inline int partition_plane_context(const MACROBLOCKD *xd, int mi_row, |
1540 | 10.5M | int mi_col, BLOCK_SIZE bsize) { |
1541 | 10.5M | const PARTITION_CONTEXT *above_ctx = xd->above_partition_context + mi_col; |
1542 | 10.5M | const PARTITION_CONTEXT *left_ctx = |
1543 | 10.5M | xd->left_partition_context + (mi_row & MAX_MIB_MASK); |
1544 | | // Minimum partition point is 8x8. Offset the bsl accordingly. |
1545 | 10.5M | const int bsl = mi_size_wide_log2[bsize] - mi_size_wide_log2[BLOCK_8X8]; |
1546 | 10.5M | int above = (*above_ctx >> bsl) & 1, left = (*left_ctx >> bsl) & 1; |
1547 | | |
1548 | 10.5M | assert(mi_size_wide_log2[bsize] == mi_size_high_log2[bsize]); |
1549 | 10.5M | assert(bsl >= 0); |
1550 | | |
1551 | 10.5M | return (left * 2 + above) + bsl * PARTITION_PLOFFSET; |
1552 | 10.5M | } Unexecuted instantiation: av1_dx_iface.c:partition_plane_context decodeframe.c:partition_plane_context Line | Count | Source | 1540 | 10.5M | int mi_col, BLOCK_SIZE bsize) { | 1541 | 10.5M | const PARTITION_CONTEXT *above_ctx = xd->above_partition_context + mi_col; | 1542 | 10.5M | const PARTITION_CONTEXT *left_ctx = | 1543 | 10.5M | xd->left_partition_context + (mi_row & MAX_MIB_MASK); | 1544 | | // Minimum partition point is 8x8. Offset the bsl accordingly. | 1545 | 10.5M | const int bsl = mi_size_wide_log2[bsize] - mi_size_wide_log2[BLOCK_8X8]; | 1546 | 10.5M | int above = (*above_ctx >> bsl) & 1, left = (*left_ctx >> bsl) & 1; | 1547 | | | 1548 | 10.5M | assert(mi_size_wide_log2[bsize] == mi_size_high_log2[bsize]); | 1549 | 10.5M | assert(bsl >= 0); | 1550 | | | 1551 | 10.5M | return (left * 2 + above) + bsl * PARTITION_PLOFFSET; | 1552 | 10.5M | } |
Unexecuted instantiation: decodemv.c:partition_plane_context Unexecuted instantiation: decoder.c:partition_plane_context Unexecuted instantiation: decodetxb.c:partition_plane_context Unexecuted instantiation: detokenize.c:partition_plane_context Unexecuted instantiation: obu.c:partition_plane_context Unexecuted instantiation: alloccommon.c:partition_plane_context Unexecuted instantiation: av1_loopfilter.c:partition_plane_context Unexecuted instantiation: blockd.c:partition_plane_context Unexecuted instantiation: cdef.c:partition_plane_context Unexecuted instantiation: cdef_block.c:partition_plane_context Unexecuted instantiation: cfl.c:partition_plane_context Unexecuted instantiation: convolve.c:partition_plane_context Unexecuted instantiation: entropy.c:partition_plane_context Unexecuted instantiation: entropymode.c:partition_plane_context Unexecuted instantiation: entropymv.c:partition_plane_context Unexecuted instantiation: mvref_common.c:partition_plane_context Unexecuted instantiation: pred_common.c:partition_plane_context Unexecuted instantiation: quant_common.c:partition_plane_context Unexecuted instantiation: reconinter.c:partition_plane_context Unexecuted instantiation: reconintra.c:partition_plane_context Unexecuted instantiation: resize.c:partition_plane_context Unexecuted instantiation: restoration.c:partition_plane_context Unexecuted instantiation: scan.c:partition_plane_context Unexecuted instantiation: thread_common.c:partition_plane_context Unexecuted instantiation: tile_common.c:partition_plane_context Unexecuted instantiation: txb_common.c:partition_plane_context Unexecuted instantiation: warped_motion.c:partition_plane_context Unexecuted instantiation: cfl_sse2.c:partition_plane_context Unexecuted instantiation: resize_sse2.c:partition_plane_context Unexecuted instantiation: cfl_ssse3.c:partition_plane_context Unexecuted instantiation: resize_ssse3.c:partition_plane_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_plane_context Unexecuted instantiation: filterintra_sse4.c:partition_plane_context Unexecuted instantiation: cfl_avx2.c:partition_plane_context Unexecuted instantiation: resize_avx2.c:partition_plane_context |
1553 | | |
1554 | | // Return the number of elements in the partition CDF when |
1555 | | // partitioning the (square) block with luma block size of bsize. |
1556 | 10.1M | static inline int partition_cdf_length(BLOCK_SIZE bsize) { |
1557 | 10.1M | if (bsize <= BLOCK_8X8) |
1558 | 2.10M | return PARTITION_TYPES; |
1559 | 8.05M | else if (bsize == BLOCK_128X128) |
1560 | 512k | return EXT_PARTITION_TYPES - 2; |
1561 | 7.53M | else |
1562 | 7.53M | return EXT_PARTITION_TYPES; |
1563 | 10.1M | } Unexecuted instantiation: av1_dx_iface.c:partition_cdf_length decodeframe.c:partition_cdf_length Line | Count | Source | 1556 | 10.1M | static inline int partition_cdf_length(BLOCK_SIZE bsize) { | 1557 | 10.1M | if (bsize <= BLOCK_8X8) | 1558 | 2.10M | return PARTITION_TYPES; | 1559 | 8.05M | else if (bsize == BLOCK_128X128) | 1560 | 512k | return EXT_PARTITION_TYPES - 2; | 1561 | 7.53M | else | 1562 | 7.53M | return EXT_PARTITION_TYPES; | 1563 | 10.1M | } |
Unexecuted instantiation: decodemv.c:partition_cdf_length Unexecuted instantiation: decoder.c:partition_cdf_length Unexecuted instantiation: decodetxb.c:partition_cdf_length Unexecuted instantiation: detokenize.c:partition_cdf_length Unexecuted instantiation: obu.c:partition_cdf_length Unexecuted instantiation: alloccommon.c:partition_cdf_length Unexecuted instantiation: av1_loopfilter.c:partition_cdf_length Unexecuted instantiation: blockd.c:partition_cdf_length Unexecuted instantiation: cdef.c:partition_cdf_length Unexecuted instantiation: cdef_block.c:partition_cdf_length Unexecuted instantiation: cfl.c:partition_cdf_length Unexecuted instantiation: convolve.c:partition_cdf_length Unexecuted instantiation: entropy.c:partition_cdf_length Unexecuted instantiation: entropymode.c:partition_cdf_length Unexecuted instantiation: entropymv.c:partition_cdf_length Unexecuted instantiation: mvref_common.c:partition_cdf_length Unexecuted instantiation: pred_common.c:partition_cdf_length Unexecuted instantiation: quant_common.c:partition_cdf_length Unexecuted instantiation: reconinter.c:partition_cdf_length Unexecuted instantiation: reconintra.c:partition_cdf_length Unexecuted instantiation: resize.c:partition_cdf_length Unexecuted instantiation: restoration.c:partition_cdf_length Unexecuted instantiation: scan.c:partition_cdf_length Unexecuted instantiation: thread_common.c:partition_cdf_length Unexecuted instantiation: tile_common.c:partition_cdf_length Unexecuted instantiation: txb_common.c:partition_cdf_length Unexecuted instantiation: warped_motion.c:partition_cdf_length Unexecuted instantiation: cfl_sse2.c:partition_cdf_length Unexecuted instantiation: resize_sse2.c:partition_cdf_length Unexecuted instantiation: cfl_ssse3.c:partition_cdf_length Unexecuted instantiation: resize_ssse3.c:partition_cdf_length Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_cdf_length Unexecuted instantiation: filterintra_sse4.c:partition_cdf_length Unexecuted instantiation: cfl_avx2.c:partition_cdf_length Unexecuted instantiation: resize_avx2.c:partition_cdf_length |
1564 | | |
1565 | | static inline int max_block_wide(const MACROBLOCKD *xd, BLOCK_SIZE bsize, |
1566 | 43.3M | int plane) { |
1567 | 43.3M | assert(bsize < BLOCK_SIZES_ALL); |
1568 | 43.3M | int max_blocks_wide = block_size_wide[bsize]; |
1569 | | |
1570 | 43.3M | if (xd->mb_to_right_edge < 0) { |
1571 | 1.52M | const struct macroblockd_plane *const pd = &xd->plane[plane]; |
1572 | 1.52M | max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x); |
1573 | 1.52M | } |
1574 | | |
1575 | | // Scale the width in the transform block unit. |
1576 | 43.3M | return max_blocks_wide >> MI_SIZE_LOG2; |
1577 | 43.3M | } Unexecuted instantiation: av1_dx_iface.c:max_block_wide decodeframe.c:max_block_wide Line | Count | Source | 1566 | 41.3M | int plane) { | 1567 | 41.3M | assert(bsize < BLOCK_SIZES_ALL); | 1568 | 41.3M | int max_blocks_wide = block_size_wide[bsize]; | 1569 | | | 1570 | 41.3M | if (xd->mb_to_right_edge < 0) { | 1571 | 289k | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1572 | 289k | max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x); | 1573 | 289k | } | 1574 | | | 1575 | | // Scale the width in the transform block unit. | 1576 | 41.3M | return max_blocks_wide >> MI_SIZE_LOG2; | 1577 | 41.3M | } |
Unexecuted instantiation: decodemv.c:max_block_wide Unexecuted instantiation: decoder.c:max_block_wide Unexecuted instantiation: decodetxb.c:max_block_wide Unexecuted instantiation: detokenize.c:max_block_wide Unexecuted instantiation: obu.c:max_block_wide Unexecuted instantiation: alloccommon.c:max_block_wide Unexecuted instantiation: av1_loopfilter.c:max_block_wide Line | Count | Source | 1566 | 1.27M | int plane) { | 1567 | 1.27M | assert(bsize < BLOCK_SIZES_ALL); | 1568 | 1.27M | int max_blocks_wide = block_size_wide[bsize]; | 1569 | | | 1570 | 1.27M | if (xd->mb_to_right_edge < 0) { | 1571 | 1.23M | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1572 | 1.23M | max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x); | 1573 | 1.23M | } | 1574 | | | 1575 | | // Scale the width in the transform block unit. | 1576 | 1.27M | return max_blocks_wide >> MI_SIZE_LOG2; | 1577 | 1.27M | } |
Unexecuted instantiation: cdef.c:max_block_wide Unexecuted instantiation: cdef_block.c:max_block_wide Line | Count | Source | 1566 | 745k | int plane) { | 1567 | 745k | assert(bsize < BLOCK_SIZES_ALL); | 1568 | 745k | int max_blocks_wide = block_size_wide[bsize]; | 1569 | | | 1570 | 745k | if (xd->mb_to_right_edge < 0) { | 1571 | 0 | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1572 | 0 | max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x); | 1573 | 0 | } | 1574 | | | 1575 | | // Scale the width in the transform block unit. | 1576 | 745k | return max_blocks_wide >> MI_SIZE_LOG2; | 1577 | 745k | } |
Unexecuted instantiation: convolve.c:max_block_wide Unexecuted instantiation: entropy.c:max_block_wide Unexecuted instantiation: entropymode.c:max_block_wide Unexecuted instantiation: entropymv.c:max_block_wide Unexecuted instantiation: mvref_common.c:max_block_wide Unexecuted instantiation: pred_common.c:max_block_wide Unexecuted instantiation: quant_common.c:max_block_wide Unexecuted instantiation: reconinter.c:max_block_wide Unexecuted instantiation: reconintra.c:max_block_wide Unexecuted instantiation: resize.c:max_block_wide Unexecuted instantiation: restoration.c:max_block_wide Unexecuted instantiation: scan.c:max_block_wide Unexecuted instantiation: thread_common.c:max_block_wide Unexecuted instantiation: tile_common.c:max_block_wide Unexecuted instantiation: txb_common.c:max_block_wide Unexecuted instantiation: warped_motion.c:max_block_wide Unexecuted instantiation: cfl_sse2.c:max_block_wide Unexecuted instantiation: resize_sse2.c:max_block_wide Unexecuted instantiation: cfl_ssse3.c:max_block_wide Unexecuted instantiation: resize_ssse3.c:max_block_wide Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:max_block_wide Unexecuted instantiation: filterintra_sse4.c:max_block_wide Unexecuted instantiation: cfl_avx2.c:max_block_wide Unexecuted instantiation: resize_avx2.c:max_block_wide |
1578 | | |
1579 | | static inline int max_block_high(const MACROBLOCKD *xd, BLOCK_SIZE bsize, |
1580 | 42.8M | int plane) { |
1581 | 42.8M | int max_blocks_high = block_size_high[bsize]; |
1582 | | |
1583 | 42.8M | if (xd->mb_to_bottom_edge < 0) { |
1584 | 1.09M | const struct macroblockd_plane *const pd = &xd->plane[plane]; |
1585 | 1.09M | max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y); |
1586 | 1.09M | } |
1587 | | |
1588 | | // Scale the height in the transform block unit. |
1589 | 42.8M | return max_blocks_high >> MI_SIZE_LOG2; |
1590 | 42.8M | } Unexecuted instantiation: av1_dx_iface.c:max_block_high decodeframe.c:max_block_high Line | Count | Source | 1580 | 41.3M | int plane) { | 1581 | 41.3M | int max_blocks_high = block_size_high[bsize]; | 1582 | | | 1583 | 41.3M | if (xd->mb_to_bottom_edge < 0) { | 1584 | 311k | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1585 | 311k | max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y); | 1586 | 311k | } | 1587 | | | 1588 | | // Scale the height in the transform block unit. | 1589 | 41.3M | return max_blocks_high >> MI_SIZE_LOG2; | 1590 | 41.3M | } |
Unexecuted instantiation: decodemv.c:max_block_high Unexecuted instantiation: decoder.c:max_block_high Unexecuted instantiation: decodetxb.c:max_block_high Unexecuted instantiation: detokenize.c:max_block_high Unexecuted instantiation: obu.c:max_block_high Unexecuted instantiation: alloccommon.c:max_block_high Unexecuted instantiation: av1_loopfilter.c:max_block_high Line | Count | Source | 1580 | 783k | int plane) { | 1581 | 783k | int max_blocks_high = block_size_high[bsize]; | 1582 | | | 1583 | 783k | if (xd->mb_to_bottom_edge < 0) { | 1584 | 783k | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1585 | 783k | max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y); | 1586 | 783k | } | 1587 | | | 1588 | | // Scale the height in the transform block unit. | 1589 | 783k | return max_blocks_high >> MI_SIZE_LOG2; | 1590 | 783k | } |
Unexecuted instantiation: cdef.c:max_block_high Unexecuted instantiation: cdef_block.c:max_block_high Line | Count | Source | 1580 | 745k | int plane) { | 1581 | 745k | int max_blocks_high = block_size_high[bsize]; | 1582 | | | 1583 | 745k | if (xd->mb_to_bottom_edge < 0) { | 1584 | 0 | const struct macroblockd_plane *const pd = &xd->plane[plane]; | 1585 | 0 | max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y); | 1586 | 0 | } | 1587 | | | 1588 | | // Scale the height in the transform block unit. | 1589 | 745k | return max_blocks_high >> MI_SIZE_LOG2; | 1590 | 745k | } |
Unexecuted instantiation: convolve.c:max_block_high Unexecuted instantiation: entropy.c:max_block_high Unexecuted instantiation: entropymode.c:max_block_high Unexecuted instantiation: entropymv.c:max_block_high Unexecuted instantiation: mvref_common.c:max_block_high Unexecuted instantiation: pred_common.c:max_block_high Unexecuted instantiation: quant_common.c:max_block_high Unexecuted instantiation: reconinter.c:max_block_high Unexecuted instantiation: reconintra.c:max_block_high Unexecuted instantiation: resize.c:max_block_high Unexecuted instantiation: restoration.c:max_block_high Unexecuted instantiation: scan.c:max_block_high Unexecuted instantiation: thread_common.c:max_block_high Unexecuted instantiation: tile_common.c:max_block_high Unexecuted instantiation: txb_common.c:max_block_high Unexecuted instantiation: warped_motion.c:max_block_high Unexecuted instantiation: cfl_sse2.c:max_block_high Unexecuted instantiation: resize_sse2.c:max_block_high Unexecuted instantiation: cfl_ssse3.c:max_block_high Unexecuted instantiation: resize_ssse3.c:max_block_high Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:max_block_high Unexecuted instantiation: filterintra_sse4.c:max_block_high Unexecuted instantiation: cfl_avx2.c:max_block_high Unexecuted instantiation: resize_avx2.c:max_block_high |
1591 | | |
1592 | | static inline void av1_zero_above_context(AV1_COMMON *const cm, |
1593 | | const MACROBLOCKD *xd, |
1594 | | int mi_col_start, int mi_col_end, |
1595 | 162k | const int tile_row) { |
1596 | 162k | const SequenceHeader *const seq_params = cm->seq_params; |
1597 | 162k | const int num_planes = av1_num_planes(cm); |
1598 | 162k | const int width = mi_col_end - mi_col_start; |
1599 | 162k | const int aligned_width = |
1600 | 162k | ALIGN_POWER_OF_TWO(width, seq_params->mib_size_log2); |
1601 | 162k | const int offset_y = mi_col_start; |
1602 | 162k | const int width_y = aligned_width; |
1603 | 162k | const int offset_uv = offset_y >> seq_params->subsampling_x; |
1604 | 162k | const int width_uv = width_y >> seq_params->subsampling_x; |
1605 | 162k | CommonContexts *const above_contexts = &cm->above_contexts; |
1606 | | |
1607 | 162k | av1_zero_array(above_contexts->entropy[0][tile_row] + offset_y, width_y); |
1608 | 162k | if (num_planes > 1) { |
1609 | 144k | if (above_contexts->entropy[1][tile_row] && |
1610 | 144k | above_contexts->entropy[2][tile_row]) { |
1611 | 144k | av1_zero_array(above_contexts->entropy[1][tile_row] + offset_uv, |
1612 | 144k | width_uv); |
1613 | 144k | av1_zero_array(above_contexts->entropy[2][tile_row] + offset_uv, |
1614 | 144k | width_uv); |
1615 | 18.4E | } else { |
1616 | 18.4E | aom_internal_error(xd->error_info, AOM_CODEC_CORRUPT_FRAME, |
1617 | 18.4E | "Invalid value of planes"); |
1618 | 18.4E | } |
1619 | 144k | } |
1620 | | |
1621 | 162k | av1_zero_array(above_contexts->partition[tile_row] + mi_col_start, |
1622 | 162k | aligned_width); |
1623 | | |
1624 | 162k | memset(above_contexts->txfm[tile_row] + mi_col_start, |
1625 | 162k | tx_size_wide[TX_SIZES_LARGEST], aligned_width * sizeof(TXFM_CONTEXT)); |
1626 | 162k | } Unexecuted instantiation: av1_dx_iface.c:av1_zero_above_context decodeframe.c:av1_zero_above_context Line | Count | Source | 1595 | 162k | const int tile_row) { | 1596 | 162k | const SequenceHeader *const seq_params = cm->seq_params; | 1597 | 162k | const int num_planes = av1_num_planes(cm); | 1598 | 162k | const int width = mi_col_end - mi_col_start; | 1599 | 162k | const int aligned_width = | 1600 | 162k | ALIGN_POWER_OF_TWO(width, seq_params->mib_size_log2); | 1601 | 162k | const int offset_y = mi_col_start; | 1602 | 162k | const int width_y = aligned_width; | 1603 | 162k | const int offset_uv = offset_y >> seq_params->subsampling_x; | 1604 | 162k | const int width_uv = width_y >> seq_params->subsampling_x; | 1605 | 162k | CommonContexts *const above_contexts = &cm->above_contexts; | 1606 | | | 1607 | 162k | av1_zero_array(above_contexts->entropy[0][tile_row] + offset_y, width_y); | 1608 | 162k | if (num_planes > 1) { | 1609 | 144k | if (above_contexts->entropy[1][tile_row] && | 1610 | 144k | above_contexts->entropy[2][tile_row]) { | 1611 | 144k | av1_zero_array(above_contexts->entropy[1][tile_row] + offset_uv, | 1612 | 144k | width_uv); | 1613 | 144k | av1_zero_array(above_contexts->entropy[2][tile_row] + offset_uv, | 1614 | 144k | width_uv); | 1615 | 18.4E | } else { | 1616 | 18.4E | aom_internal_error(xd->error_info, AOM_CODEC_CORRUPT_FRAME, | 1617 | 18.4E | "Invalid value of planes"); | 1618 | 18.4E | } | 1619 | 144k | } | 1620 | | | 1621 | 162k | av1_zero_array(above_contexts->partition[tile_row] + mi_col_start, | 1622 | 162k | aligned_width); | 1623 | | | 1624 | 162k | memset(above_contexts->txfm[tile_row] + mi_col_start, | 1625 | 162k | tx_size_wide[TX_SIZES_LARGEST], aligned_width * sizeof(TXFM_CONTEXT)); | 1626 | 162k | } |
Unexecuted instantiation: decodemv.c:av1_zero_above_context Unexecuted instantiation: decoder.c:av1_zero_above_context Unexecuted instantiation: decodetxb.c:av1_zero_above_context Unexecuted instantiation: detokenize.c:av1_zero_above_context Unexecuted instantiation: obu.c:av1_zero_above_context Unexecuted instantiation: alloccommon.c:av1_zero_above_context Unexecuted instantiation: av1_loopfilter.c:av1_zero_above_context Unexecuted instantiation: blockd.c:av1_zero_above_context Unexecuted instantiation: cdef.c:av1_zero_above_context Unexecuted instantiation: cdef_block.c:av1_zero_above_context Unexecuted instantiation: cfl.c:av1_zero_above_context Unexecuted instantiation: convolve.c:av1_zero_above_context Unexecuted instantiation: entropy.c:av1_zero_above_context Unexecuted instantiation: entropymode.c:av1_zero_above_context Unexecuted instantiation: entropymv.c:av1_zero_above_context Unexecuted instantiation: mvref_common.c:av1_zero_above_context Unexecuted instantiation: pred_common.c:av1_zero_above_context Unexecuted instantiation: quant_common.c:av1_zero_above_context Unexecuted instantiation: reconinter.c:av1_zero_above_context Unexecuted instantiation: reconintra.c:av1_zero_above_context Unexecuted instantiation: resize.c:av1_zero_above_context Unexecuted instantiation: restoration.c:av1_zero_above_context Unexecuted instantiation: scan.c:av1_zero_above_context Unexecuted instantiation: thread_common.c:av1_zero_above_context Unexecuted instantiation: tile_common.c:av1_zero_above_context Unexecuted instantiation: txb_common.c:av1_zero_above_context Unexecuted instantiation: warped_motion.c:av1_zero_above_context Unexecuted instantiation: cfl_sse2.c:av1_zero_above_context Unexecuted instantiation: resize_sse2.c:av1_zero_above_context Unexecuted instantiation: cfl_ssse3.c:av1_zero_above_context Unexecuted instantiation: resize_ssse3.c:av1_zero_above_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_zero_above_context Unexecuted instantiation: filterintra_sse4.c:av1_zero_above_context Unexecuted instantiation: cfl_avx2.c:av1_zero_above_context Unexecuted instantiation: resize_avx2.c:av1_zero_above_context |
1627 | | |
1628 | 293k | static inline void av1_zero_left_context(MACROBLOCKD *const xd) { |
1629 | 293k | av1_zero(xd->left_entropy_context); |
1630 | 293k | av1_zero(xd->left_partition_context); |
1631 | | |
1632 | 293k | memset(xd->left_txfm_context_buffer, tx_size_high[TX_SIZES_LARGEST], |
1633 | 293k | sizeof(xd->left_txfm_context_buffer)); |
1634 | 293k | } Unexecuted instantiation: av1_dx_iface.c:av1_zero_left_context decodeframe.c:av1_zero_left_context Line | Count | Source | 1628 | 293k | static inline void av1_zero_left_context(MACROBLOCKD *const xd) { | 1629 | 293k | av1_zero(xd->left_entropy_context); | 1630 | 293k | av1_zero(xd->left_partition_context); | 1631 | | | 1632 | 293k | memset(xd->left_txfm_context_buffer, tx_size_high[TX_SIZES_LARGEST], | 1633 | 293k | sizeof(xd->left_txfm_context_buffer)); | 1634 | 293k | } |
Unexecuted instantiation: decodemv.c:av1_zero_left_context Unexecuted instantiation: decoder.c:av1_zero_left_context Unexecuted instantiation: decodetxb.c:av1_zero_left_context Unexecuted instantiation: detokenize.c:av1_zero_left_context Unexecuted instantiation: obu.c:av1_zero_left_context Unexecuted instantiation: alloccommon.c:av1_zero_left_context Unexecuted instantiation: av1_loopfilter.c:av1_zero_left_context Unexecuted instantiation: blockd.c:av1_zero_left_context Unexecuted instantiation: cdef.c:av1_zero_left_context Unexecuted instantiation: cdef_block.c:av1_zero_left_context Unexecuted instantiation: cfl.c:av1_zero_left_context Unexecuted instantiation: convolve.c:av1_zero_left_context Unexecuted instantiation: entropy.c:av1_zero_left_context Unexecuted instantiation: entropymode.c:av1_zero_left_context Unexecuted instantiation: entropymv.c:av1_zero_left_context Unexecuted instantiation: mvref_common.c:av1_zero_left_context Unexecuted instantiation: pred_common.c:av1_zero_left_context Unexecuted instantiation: quant_common.c:av1_zero_left_context Unexecuted instantiation: reconinter.c:av1_zero_left_context Unexecuted instantiation: reconintra.c:av1_zero_left_context Unexecuted instantiation: resize.c:av1_zero_left_context Unexecuted instantiation: restoration.c:av1_zero_left_context Unexecuted instantiation: scan.c:av1_zero_left_context Unexecuted instantiation: thread_common.c:av1_zero_left_context Unexecuted instantiation: tile_common.c:av1_zero_left_context Unexecuted instantiation: txb_common.c:av1_zero_left_context Unexecuted instantiation: warped_motion.c:av1_zero_left_context Unexecuted instantiation: cfl_sse2.c:av1_zero_left_context Unexecuted instantiation: resize_sse2.c:av1_zero_left_context Unexecuted instantiation: cfl_ssse3.c:av1_zero_left_context Unexecuted instantiation: resize_ssse3.c:av1_zero_left_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_zero_left_context Unexecuted instantiation: filterintra_sse4.c:av1_zero_left_context Unexecuted instantiation: cfl_avx2.c:av1_zero_left_context Unexecuted instantiation: resize_avx2.c:av1_zero_left_context |
1635 | | |
1636 | 29.2M | static inline void set_txfm_ctx(TXFM_CONTEXT *txfm_ctx, uint8_t txs, int len) { |
1637 | 29.2M | int i; |
1638 | 174M | for (i = 0; i < len; ++i) txfm_ctx[i] = txs; |
1639 | 29.2M | } Unexecuted instantiation: av1_dx_iface.c:set_txfm_ctx decodeframe.c:set_txfm_ctx Line | Count | Source | 1636 | 29.2M | static inline void set_txfm_ctx(TXFM_CONTEXT *txfm_ctx, uint8_t txs, int len) { | 1637 | 29.2M | int i; | 1638 | 174M | for (i = 0; i < len; ++i) txfm_ctx[i] = txs; | 1639 | 29.2M | } |
Unexecuted instantiation: decodemv.c:set_txfm_ctx Unexecuted instantiation: decoder.c:set_txfm_ctx Unexecuted instantiation: decodetxb.c:set_txfm_ctx Unexecuted instantiation: detokenize.c:set_txfm_ctx Unexecuted instantiation: obu.c:set_txfm_ctx Unexecuted instantiation: alloccommon.c:set_txfm_ctx Unexecuted instantiation: av1_loopfilter.c:set_txfm_ctx Unexecuted instantiation: blockd.c:set_txfm_ctx Unexecuted instantiation: cdef.c:set_txfm_ctx Unexecuted instantiation: cdef_block.c:set_txfm_ctx Unexecuted instantiation: cfl.c:set_txfm_ctx Unexecuted instantiation: convolve.c:set_txfm_ctx Unexecuted instantiation: entropy.c:set_txfm_ctx Unexecuted instantiation: entropymode.c:set_txfm_ctx Unexecuted instantiation: entropymv.c:set_txfm_ctx Unexecuted instantiation: mvref_common.c:set_txfm_ctx Unexecuted instantiation: pred_common.c:set_txfm_ctx Unexecuted instantiation: quant_common.c:set_txfm_ctx Unexecuted instantiation: reconinter.c:set_txfm_ctx Unexecuted instantiation: reconintra.c:set_txfm_ctx Unexecuted instantiation: resize.c:set_txfm_ctx Unexecuted instantiation: restoration.c:set_txfm_ctx Unexecuted instantiation: scan.c:set_txfm_ctx Unexecuted instantiation: thread_common.c:set_txfm_ctx Unexecuted instantiation: tile_common.c:set_txfm_ctx Unexecuted instantiation: txb_common.c:set_txfm_ctx Unexecuted instantiation: warped_motion.c:set_txfm_ctx Unexecuted instantiation: cfl_sse2.c:set_txfm_ctx Unexecuted instantiation: resize_sse2.c:set_txfm_ctx Unexecuted instantiation: cfl_ssse3.c:set_txfm_ctx Unexecuted instantiation: resize_ssse3.c:set_txfm_ctx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_txfm_ctx Unexecuted instantiation: filterintra_sse4.c:set_txfm_ctx Unexecuted instantiation: cfl_avx2.c:set_txfm_ctx Unexecuted instantiation: resize_avx2.c:set_txfm_ctx |
1640 | | |
1641 | | static inline void set_txfm_ctxs(TX_SIZE tx_size, int n4_w, int n4_h, int skip, |
1642 | 14.6M | const MACROBLOCKD *xd) { |
1643 | 14.6M | uint8_t bw = tx_size_wide[tx_size]; |
1644 | 14.6M | uint8_t bh = tx_size_high[tx_size]; |
1645 | | |
1646 | 14.6M | if (skip) { |
1647 | 1.20M | bw = n4_w * MI_SIZE; |
1648 | 1.20M | bh = n4_h * MI_SIZE; |
1649 | 1.20M | } |
1650 | | |
1651 | 14.6M | set_txfm_ctx(xd->above_txfm_context, bw, n4_w); |
1652 | 14.6M | set_txfm_ctx(xd->left_txfm_context, bh, n4_h); |
1653 | 14.6M | } Unexecuted instantiation: av1_dx_iface.c:set_txfm_ctxs decodeframe.c:set_txfm_ctxs Line | Count | Source | 1642 | 14.6M | const MACROBLOCKD *xd) { | 1643 | 14.6M | uint8_t bw = tx_size_wide[tx_size]; | 1644 | 14.6M | uint8_t bh = tx_size_high[tx_size]; | 1645 | | | 1646 | 14.6M | if (skip) { | 1647 | 1.20M | bw = n4_w * MI_SIZE; | 1648 | 1.20M | bh = n4_h * MI_SIZE; | 1649 | 1.20M | } | 1650 | | | 1651 | 14.6M | set_txfm_ctx(xd->above_txfm_context, bw, n4_w); | 1652 | 14.6M | set_txfm_ctx(xd->left_txfm_context, bh, n4_h); | 1653 | 14.6M | } |
Unexecuted instantiation: decodemv.c:set_txfm_ctxs Unexecuted instantiation: decoder.c:set_txfm_ctxs Unexecuted instantiation: decodetxb.c:set_txfm_ctxs Unexecuted instantiation: detokenize.c:set_txfm_ctxs Unexecuted instantiation: obu.c:set_txfm_ctxs Unexecuted instantiation: alloccommon.c:set_txfm_ctxs Unexecuted instantiation: av1_loopfilter.c:set_txfm_ctxs Unexecuted instantiation: blockd.c:set_txfm_ctxs Unexecuted instantiation: cdef.c:set_txfm_ctxs Unexecuted instantiation: cdef_block.c:set_txfm_ctxs Unexecuted instantiation: cfl.c:set_txfm_ctxs Unexecuted instantiation: convolve.c:set_txfm_ctxs Unexecuted instantiation: entropy.c:set_txfm_ctxs Unexecuted instantiation: entropymode.c:set_txfm_ctxs Unexecuted instantiation: entropymv.c:set_txfm_ctxs Unexecuted instantiation: mvref_common.c:set_txfm_ctxs Unexecuted instantiation: pred_common.c:set_txfm_ctxs Unexecuted instantiation: quant_common.c:set_txfm_ctxs Unexecuted instantiation: reconinter.c:set_txfm_ctxs Unexecuted instantiation: reconintra.c:set_txfm_ctxs Unexecuted instantiation: resize.c:set_txfm_ctxs Unexecuted instantiation: restoration.c:set_txfm_ctxs Unexecuted instantiation: scan.c:set_txfm_ctxs Unexecuted instantiation: thread_common.c:set_txfm_ctxs Unexecuted instantiation: tile_common.c:set_txfm_ctxs Unexecuted instantiation: txb_common.c:set_txfm_ctxs Unexecuted instantiation: warped_motion.c:set_txfm_ctxs Unexecuted instantiation: cfl_sse2.c:set_txfm_ctxs Unexecuted instantiation: resize_sse2.c:set_txfm_ctxs Unexecuted instantiation: cfl_ssse3.c:set_txfm_ctxs Unexecuted instantiation: resize_ssse3.c:set_txfm_ctxs Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_txfm_ctxs Unexecuted instantiation: filterintra_sse4.c:set_txfm_ctxs Unexecuted instantiation: cfl_avx2.c:set_txfm_ctxs Unexecuted instantiation: resize_avx2.c:set_txfm_ctxs |
1654 | | |
1655 | | static inline int get_mi_grid_idx(const CommonModeInfoParams *const mi_params, |
1656 | 16.5M | int mi_row, int mi_col) { |
1657 | 16.5M | return mi_row * mi_params->mi_stride + mi_col; |
1658 | 16.5M | } Unexecuted instantiation: av1_dx_iface.c:get_mi_grid_idx decodeframe.c:get_mi_grid_idx Line | Count | Source | 1656 | 15.6M | int mi_row, int mi_col) { | 1657 | 15.6M | return mi_row * mi_params->mi_stride + mi_col; | 1658 | 15.6M | } |
decodemv.c:get_mi_grid_idx Line | Count | Source | 1656 | 909k | int mi_row, int mi_col) { | 1657 | 909k | return mi_row * mi_params->mi_stride + mi_col; | 1658 | 909k | } |
Unexecuted instantiation: decoder.c:get_mi_grid_idx Unexecuted instantiation: decodetxb.c:get_mi_grid_idx Unexecuted instantiation: detokenize.c:get_mi_grid_idx Unexecuted instantiation: obu.c:get_mi_grid_idx Unexecuted instantiation: alloccommon.c:get_mi_grid_idx Unexecuted instantiation: av1_loopfilter.c:get_mi_grid_idx Unexecuted instantiation: blockd.c:get_mi_grid_idx Unexecuted instantiation: cdef.c:get_mi_grid_idx Unexecuted instantiation: cdef_block.c:get_mi_grid_idx Unexecuted instantiation: cfl.c:get_mi_grid_idx Unexecuted instantiation: convolve.c:get_mi_grid_idx Unexecuted instantiation: entropy.c:get_mi_grid_idx Unexecuted instantiation: entropymode.c:get_mi_grid_idx Unexecuted instantiation: entropymv.c:get_mi_grid_idx Unexecuted instantiation: mvref_common.c:get_mi_grid_idx Unexecuted instantiation: pred_common.c:get_mi_grid_idx Unexecuted instantiation: quant_common.c:get_mi_grid_idx Unexecuted instantiation: reconinter.c:get_mi_grid_idx Unexecuted instantiation: reconintra.c:get_mi_grid_idx Unexecuted instantiation: resize.c:get_mi_grid_idx Unexecuted instantiation: restoration.c:get_mi_grid_idx Unexecuted instantiation: scan.c:get_mi_grid_idx Unexecuted instantiation: thread_common.c:get_mi_grid_idx Unexecuted instantiation: tile_common.c:get_mi_grid_idx Unexecuted instantiation: txb_common.c:get_mi_grid_idx Unexecuted instantiation: warped_motion.c:get_mi_grid_idx Unexecuted instantiation: cfl_sse2.c:get_mi_grid_idx Unexecuted instantiation: resize_sse2.c:get_mi_grid_idx Unexecuted instantiation: cfl_ssse3.c:get_mi_grid_idx Unexecuted instantiation: resize_ssse3.c:get_mi_grid_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_mi_grid_idx Unexecuted instantiation: filterintra_sse4.c:get_mi_grid_idx Unexecuted instantiation: cfl_avx2.c:get_mi_grid_idx Unexecuted instantiation: resize_avx2.c:get_mi_grid_idx |
1659 | | |
1660 | | static inline int get_alloc_mi_idx(const CommonModeInfoParams *const mi_params, |
1661 | 15.6M | int mi_row, int mi_col) { |
1662 | 15.6M | const int mi_alloc_size_1d = mi_size_wide[mi_params->mi_alloc_bsize]; |
1663 | 15.6M | const int mi_alloc_row = mi_row / mi_alloc_size_1d; |
1664 | 15.6M | const int mi_alloc_col = mi_col / mi_alloc_size_1d; |
1665 | | |
1666 | 15.6M | return mi_alloc_row * mi_params->mi_alloc_stride + mi_alloc_col; |
1667 | 15.6M | } Unexecuted instantiation: av1_dx_iface.c:get_alloc_mi_idx decodeframe.c:get_alloc_mi_idx Line | Count | Source | 1661 | 15.6M | int mi_row, int mi_col) { | 1662 | 15.6M | const int mi_alloc_size_1d = mi_size_wide[mi_params->mi_alloc_bsize]; | 1663 | 15.6M | const int mi_alloc_row = mi_row / mi_alloc_size_1d; | 1664 | 15.6M | const int mi_alloc_col = mi_col / mi_alloc_size_1d; | 1665 | | | 1666 | 15.6M | return mi_alloc_row * mi_params->mi_alloc_stride + mi_alloc_col; | 1667 | 15.6M | } |
Unexecuted instantiation: decodemv.c:get_alloc_mi_idx Unexecuted instantiation: decoder.c:get_alloc_mi_idx Unexecuted instantiation: decodetxb.c:get_alloc_mi_idx Unexecuted instantiation: detokenize.c:get_alloc_mi_idx Unexecuted instantiation: obu.c:get_alloc_mi_idx Unexecuted instantiation: alloccommon.c:get_alloc_mi_idx Unexecuted instantiation: av1_loopfilter.c:get_alloc_mi_idx Unexecuted instantiation: blockd.c:get_alloc_mi_idx Unexecuted instantiation: cdef.c:get_alloc_mi_idx Unexecuted instantiation: cdef_block.c:get_alloc_mi_idx Unexecuted instantiation: cfl.c:get_alloc_mi_idx Unexecuted instantiation: convolve.c:get_alloc_mi_idx Unexecuted instantiation: entropy.c:get_alloc_mi_idx Unexecuted instantiation: entropymode.c:get_alloc_mi_idx Unexecuted instantiation: entropymv.c:get_alloc_mi_idx Unexecuted instantiation: mvref_common.c:get_alloc_mi_idx Unexecuted instantiation: pred_common.c:get_alloc_mi_idx Unexecuted instantiation: quant_common.c:get_alloc_mi_idx Unexecuted instantiation: reconinter.c:get_alloc_mi_idx Unexecuted instantiation: reconintra.c:get_alloc_mi_idx Unexecuted instantiation: resize.c:get_alloc_mi_idx Unexecuted instantiation: restoration.c:get_alloc_mi_idx Unexecuted instantiation: scan.c:get_alloc_mi_idx Unexecuted instantiation: thread_common.c:get_alloc_mi_idx Unexecuted instantiation: tile_common.c:get_alloc_mi_idx Unexecuted instantiation: txb_common.c:get_alloc_mi_idx Unexecuted instantiation: warped_motion.c:get_alloc_mi_idx Unexecuted instantiation: cfl_sse2.c:get_alloc_mi_idx Unexecuted instantiation: resize_sse2.c:get_alloc_mi_idx Unexecuted instantiation: cfl_ssse3.c:get_alloc_mi_idx Unexecuted instantiation: resize_ssse3.c:get_alloc_mi_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_alloc_mi_idx Unexecuted instantiation: filterintra_sse4.c:get_alloc_mi_idx Unexecuted instantiation: cfl_avx2.c:get_alloc_mi_idx Unexecuted instantiation: resize_avx2.c:get_alloc_mi_idx |
1668 | | |
1669 | | // For this partition block, set pointers in mi_params->mi_grid_base and xd->mi. |
1670 | | static inline void set_mi_offsets(const CommonModeInfoParams *const mi_params, |
1671 | | MACROBLOCKD *const xd, int mi_row, |
1672 | 15.6M | int mi_col) { |
1673 | | // 'mi_grid_base' should point to appropriate memory in 'mi'. |
1674 | 15.6M | const int mi_grid_idx = get_mi_grid_idx(mi_params, mi_row, mi_col); |
1675 | 15.6M | const int mi_alloc_idx = get_alloc_mi_idx(mi_params, mi_row, mi_col); |
1676 | 15.6M | mi_params->mi_grid_base[mi_grid_idx] = &mi_params->mi_alloc[mi_alloc_idx]; |
1677 | | // 'xd->mi' should point to an offset in 'mi_grid_base'; |
1678 | 15.6M | xd->mi = mi_params->mi_grid_base + mi_grid_idx; |
1679 | | // 'xd->tx_type_map' should point to an offset in 'mi_params->tx_type_map'. |
1680 | 15.6M | xd->tx_type_map = mi_params->tx_type_map + mi_grid_idx; |
1681 | 15.6M | xd->tx_type_map_stride = mi_params->mi_stride; |
1682 | 15.6M | } Unexecuted instantiation: av1_dx_iface.c:set_mi_offsets decodeframe.c:set_mi_offsets Line | Count | Source | 1672 | 15.6M | int mi_col) { | 1673 | | // 'mi_grid_base' should point to appropriate memory in 'mi'. | 1674 | 15.6M | const int mi_grid_idx = get_mi_grid_idx(mi_params, mi_row, mi_col); | 1675 | 15.6M | const int mi_alloc_idx = get_alloc_mi_idx(mi_params, mi_row, mi_col); | 1676 | 15.6M | mi_params->mi_grid_base[mi_grid_idx] = &mi_params->mi_alloc[mi_alloc_idx]; | 1677 | | // 'xd->mi' should point to an offset in 'mi_grid_base'; | 1678 | 15.6M | xd->mi = mi_params->mi_grid_base + mi_grid_idx; | 1679 | | // 'xd->tx_type_map' should point to an offset in 'mi_params->tx_type_map'. | 1680 | 15.6M | xd->tx_type_map = mi_params->tx_type_map + mi_grid_idx; | 1681 | 15.6M | xd->tx_type_map_stride = mi_params->mi_stride; | 1682 | 15.6M | } |
Unexecuted instantiation: decodemv.c:set_mi_offsets Unexecuted instantiation: decoder.c:set_mi_offsets Unexecuted instantiation: decodetxb.c:set_mi_offsets Unexecuted instantiation: detokenize.c:set_mi_offsets Unexecuted instantiation: obu.c:set_mi_offsets Unexecuted instantiation: alloccommon.c:set_mi_offsets Unexecuted instantiation: av1_loopfilter.c:set_mi_offsets Unexecuted instantiation: blockd.c:set_mi_offsets Unexecuted instantiation: cdef.c:set_mi_offsets Unexecuted instantiation: cdef_block.c:set_mi_offsets Unexecuted instantiation: cfl.c:set_mi_offsets Unexecuted instantiation: convolve.c:set_mi_offsets Unexecuted instantiation: entropy.c:set_mi_offsets Unexecuted instantiation: entropymode.c:set_mi_offsets Unexecuted instantiation: entropymv.c:set_mi_offsets Unexecuted instantiation: mvref_common.c:set_mi_offsets Unexecuted instantiation: pred_common.c:set_mi_offsets Unexecuted instantiation: quant_common.c:set_mi_offsets Unexecuted instantiation: reconinter.c:set_mi_offsets Unexecuted instantiation: reconintra.c:set_mi_offsets Unexecuted instantiation: resize.c:set_mi_offsets Unexecuted instantiation: restoration.c:set_mi_offsets Unexecuted instantiation: scan.c:set_mi_offsets Unexecuted instantiation: thread_common.c:set_mi_offsets Unexecuted instantiation: tile_common.c:set_mi_offsets Unexecuted instantiation: txb_common.c:set_mi_offsets Unexecuted instantiation: warped_motion.c:set_mi_offsets Unexecuted instantiation: cfl_sse2.c:set_mi_offsets Unexecuted instantiation: resize_sse2.c:set_mi_offsets Unexecuted instantiation: cfl_ssse3.c:set_mi_offsets Unexecuted instantiation: resize_ssse3.c:set_mi_offsets Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_mi_offsets Unexecuted instantiation: filterintra_sse4.c:set_mi_offsets Unexecuted instantiation: cfl_avx2.c:set_mi_offsets Unexecuted instantiation: resize_avx2.c:set_mi_offsets |
1683 | | |
1684 | | static inline void txfm_partition_update(TXFM_CONTEXT *above_ctx, |
1685 | | TXFM_CONTEXT *left_ctx, |
1686 | 1.43M | TX_SIZE tx_size, TX_SIZE txb_size) { |
1687 | 1.43M | BLOCK_SIZE bsize = txsize_to_bsize[txb_size]; |
1688 | 1.43M | int bh = mi_size_high[bsize]; |
1689 | 1.43M | int bw = mi_size_wide[bsize]; |
1690 | 1.43M | uint8_t txw = tx_size_wide[tx_size]; |
1691 | 1.43M | uint8_t txh = tx_size_high[tx_size]; |
1692 | 1.43M | int i; |
1693 | 6.08M | for (i = 0; i < bh; ++i) left_ctx[i] = txh; |
1694 | 6.44M | for (i = 0; i < bw; ++i) above_ctx[i] = txw; |
1695 | 1.43M | } Unexecuted instantiation: av1_dx_iface.c:txfm_partition_update decodeframe.c:txfm_partition_update Line | Count | Source | 1686 | 1.43M | TX_SIZE tx_size, TX_SIZE txb_size) { | 1687 | 1.43M | BLOCK_SIZE bsize = txsize_to_bsize[txb_size]; | 1688 | 1.43M | int bh = mi_size_high[bsize]; | 1689 | 1.43M | int bw = mi_size_wide[bsize]; | 1690 | 1.43M | uint8_t txw = tx_size_wide[tx_size]; | 1691 | 1.43M | uint8_t txh = tx_size_high[tx_size]; | 1692 | 1.43M | int i; | 1693 | 6.08M | for (i = 0; i < bh; ++i) left_ctx[i] = txh; | 1694 | 6.44M | for (i = 0; i < bw; ++i) above_ctx[i] = txw; | 1695 | 1.43M | } |
Unexecuted instantiation: decodemv.c:txfm_partition_update Unexecuted instantiation: decoder.c:txfm_partition_update Unexecuted instantiation: decodetxb.c:txfm_partition_update Unexecuted instantiation: detokenize.c:txfm_partition_update Unexecuted instantiation: obu.c:txfm_partition_update Unexecuted instantiation: alloccommon.c:txfm_partition_update Unexecuted instantiation: av1_loopfilter.c:txfm_partition_update Unexecuted instantiation: blockd.c:txfm_partition_update Unexecuted instantiation: cdef.c:txfm_partition_update Unexecuted instantiation: cdef_block.c:txfm_partition_update Unexecuted instantiation: cfl.c:txfm_partition_update Unexecuted instantiation: convolve.c:txfm_partition_update Unexecuted instantiation: entropy.c:txfm_partition_update Unexecuted instantiation: entropymode.c:txfm_partition_update Unexecuted instantiation: entropymv.c:txfm_partition_update Unexecuted instantiation: mvref_common.c:txfm_partition_update Unexecuted instantiation: pred_common.c:txfm_partition_update Unexecuted instantiation: quant_common.c:txfm_partition_update Unexecuted instantiation: reconinter.c:txfm_partition_update Unexecuted instantiation: reconintra.c:txfm_partition_update Unexecuted instantiation: resize.c:txfm_partition_update Unexecuted instantiation: restoration.c:txfm_partition_update Unexecuted instantiation: scan.c:txfm_partition_update Unexecuted instantiation: thread_common.c:txfm_partition_update Unexecuted instantiation: tile_common.c:txfm_partition_update Unexecuted instantiation: txb_common.c:txfm_partition_update Unexecuted instantiation: warped_motion.c:txfm_partition_update Unexecuted instantiation: cfl_sse2.c:txfm_partition_update Unexecuted instantiation: resize_sse2.c:txfm_partition_update Unexecuted instantiation: cfl_ssse3.c:txfm_partition_update Unexecuted instantiation: resize_ssse3.c:txfm_partition_update Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:txfm_partition_update Unexecuted instantiation: filterintra_sse4.c:txfm_partition_update Unexecuted instantiation: cfl_avx2.c:txfm_partition_update Unexecuted instantiation: resize_avx2.c:txfm_partition_update |
1696 | | |
1697 | 1.67M | static inline TX_SIZE get_sqr_tx_size(int tx_dim) { |
1698 | 1.67M | switch (tx_dim) { |
1699 | 52.3k | case 128: |
1700 | 112k | case 64: return TX_64X64; break; |
1701 | 386k | case 32: return TX_32X32; break; |
1702 | 670k | case 16: return TX_16X16; break; |
1703 | 328k | case 8: return TX_8X8; break; |
1704 | 177k | default: return TX_4X4; |
1705 | 1.67M | } |
1706 | 1.67M | } Unexecuted instantiation: av1_dx_iface.c:get_sqr_tx_size decodeframe.c:get_sqr_tx_size Line | Count | Source | 1697 | 1.49M | static inline TX_SIZE get_sqr_tx_size(int tx_dim) { | 1698 | 1.49M | switch (tx_dim) { | 1699 | 52.3k | case 128: | 1700 | 112k | case 64: return TX_64X64; break; | 1701 | 386k | case 32: return TX_32X32; break; | 1702 | 670k | case 16: return TX_16X16; break; | 1703 | 328k | case 8: return TX_8X8; break; | 1704 | 0 | default: return TX_4X4; | 1705 | 1.49M | } | 1706 | 1.49M | } |
Unexecuted instantiation: decodemv.c:get_sqr_tx_size Unexecuted instantiation: decoder.c:get_sqr_tx_size Unexecuted instantiation: decodetxb.c:get_sqr_tx_size Unexecuted instantiation: detokenize.c:get_sqr_tx_size Unexecuted instantiation: obu.c:get_sqr_tx_size Unexecuted instantiation: alloccommon.c:get_sqr_tx_size Unexecuted instantiation: av1_loopfilter.c:get_sqr_tx_size Unexecuted instantiation: blockd.c:get_sqr_tx_size Unexecuted instantiation: cdef.c:get_sqr_tx_size Unexecuted instantiation: cdef_block.c:get_sqr_tx_size Line | Count | Source | 1697 | 177k | static inline TX_SIZE get_sqr_tx_size(int tx_dim) { | 1698 | 177k | switch (tx_dim) { | 1699 | 0 | case 128: | 1700 | 0 | case 64: return TX_64X64; break; | 1701 | 0 | case 32: return TX_32X32; break; | 1702 | 0 | case 16: return TX_16X16; break; | 1703 | 0 | case 8: return TX_8X8; break; | 1704 | 177k | default: return TX_4X4; | 1705 | 177k | } | 1706 | 177k | } |
Unexecuted instantiation: convolve.c:get_sqr_tx_size Unexecuted instantiation: entropy.c:get_sqr_tx_size Unexecuted instantiation: entropymode.c:get_sqr_tx_size Unexecuted instantiation: entropymv.c:get_sqr_tx_size Unexecuted instantiation: mvref_common.c:get_sqr_tx_size Unexecuted instantiation: pred_common.c:get_sqr_tx_size Unexecuted instantiation: quant_common.c:get_sqr_tx_size Unexecuted instantiation: reconinter.c:get_sqr_tx_size Unexecuted instantiation: reconintra.c:get_sqr_tx_size Unexecuted instantiation: resize.c:get_sqr_tx_size Unexecuted instantiation: restoration.c:get_sqr_tx_size Unexecuted instantiation: scan.c:get_sqr_tx_size Unexecuted instantiation: thread_common.c:get_sqr_tx_size Unexecuted instantiation: tile_common.c:get_sqr_tx_size Unexecuted instantiation: txb_common.c:get_sqr_tx_size Unexecuted instantiation: warped_motion.c:get_sqr_tx_size Unexecuted instantiation: cfl_sse2.c:get_sqr_tx_size Unexecuted instantiation: resize_sse2.c:get_sqr_tx_size Unexecuted instantiation: cfl_ssse3.c:get_sqr_tx_size Unexecuted instantiation: resize_ssse3.c:get_sqr_tx_size Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_sqr_tx_size Unexecuted instantiation: filterintra_sse4.c:get_sqr_tx_size Unexecuted instantiation: cfl_avx2.c:get_sqr_tx_size Unexecuted instantiation: resize_avx2.c:get_sqr_tx_size |
1707 | | |
1708 | 745k | static inline TX_SIZE get_tx_size(int width, int height) { |
1709 | 745k | if (width == height) { |
1710 | 177k | return get_sqr_tx_size(width); |
1711 | 177k | } |
1712 | 567k | if (width < height) { |
1713 | 250k | if (width + width == height) { |
1714 | 114k | switch (width) { |
1715 | 114k | case 4: return TX_4X8; break; |
1716 | 0 | case 8: return TX_8X16; break; |
1717 | 0 | case 16: return TX_16X32; break; |
1718 | 0 | case 32: return TX_32X64; break; |
1719 | 114k | } |
1720 | 135k | } else { |
1721 | 135k | switch (width) { |
1722 | 135k | case 4: return TX_4X16; break; |
1723 | 0 | case 8: return TX_8X32; break; |
1724 | 0 | case 16: return TX_16X64; break; |
1725 | 135k | } |
1726 | 135k | } |
1727 | 317k | } else { |
1728 | 317k | if (height + height == width) { |
1729 | 142k | switch (height) { |
1730 | 142k | case 4: return TX_8X4; break; |
1731 | 0 | case 8: return TX_16X8; break; |
1732 | 0 | case 16: return TX_32X16; break; |
1733 | 0 | case 32: return TX_64X32; break; |
1734 | 142k | } |
1735 | 175k | } else { |
1736 | 175k | switch (height) { |
1737 | 175k | case 4: return TX_16X4; break; |
1738 | 0 | case 8: return TX_32X8; break; |
1739 | 0 | case 16: return TX_64X16; break; |
1740 | 175k | } |
1741 | 175k | } |
1742 | 317k | } |
1743 | 0 | assert(0); |
1744 | 0 | return TX_4X4; |
1745 | 0 | } Unexecuted instantiation: av1_dx_iface.c:get_tx_size Unexecuted instantiation: decodeframe.c:get_tx_size Unexecuted instantiation: decodemv.c:get_tx_size Unexecuted instantiation: decoder.c:get_tx_size Unexecuted instantiation: decodetxb.c:get_tx_size Unexecuted instantiation: detokenize.c:get_tx_size Unexecuted instantiation: obu.c:get_tx_size Unexecuted instantiation: alloccommon.c:get_tx_size Unexecuted instantiation: av1_loopfilter.c:get_tx_size Unexecuted instantiation: blockd.c:get_tx_size Unexecuted instantiation: cdef.c:get_tx_size Unexecuted instantiation: cdef_block.c:get_tx_size Line | Count | Source | 1708 | 745k | static inline TX_SIZE get_tx_size(int width, int height) { | 1709 | 745k | if (width == height) { | 1710 | 177k | return get_sqr_tx_size(width); | 1711 | 177k | } | 1712 | 567k | if (width < height) { | 1713 | 250k | if (width + width == height) { | 1714 | 114k | switch (width) { | 1715 | 114k | case 4: return TX_4X8; break; | 1716 | 0 | case 8: return TX_8X16; break; | 1717 | 0 | case 16: return TX_16X32; break; | 1718 | 0 | case 32: return TX_32X64; break; | 1719 | 114k | } | 1720 | 135k | } else { | 1721 | 135k | switch (width) { | 1722 | 135k | case 4: return TX_4X16; break; | 1723 | 0 | case 8: return TX_8X32; break; | 1724 | 0 | case 16: return TX_16X64; break; | 1725 | 135k | } | 1726 | 135k | } | 1727 | 317k | } else { | 1728 | 317k | if (height + height == width) { | 1729 | 142k | switch (height) { | 1730 | 142k | case 4: return TX_8X4; break; | 1731 | 0 | case 8: return TX_16X8; break; | 1732 | 0 | case 16: return TX_32X16; break; | 1733 | 0 | case 32: return TX_64X32; break; | 1734 | 142k | } | 1735 | 175k | } else { | 1736 | 175k | switch (height) { | 1737 | 175k | case 4: return TX_16X4; break; | 1738 | 0 | case 8: return TX_32X8; break; | 1739 | 0 | case 16: return TX_64X16; break; | 1740 | 175k | } | 1741 | 175k | } | 1742 | 317k | } | 1743 | 0 | assert(0); | 1744 | 0 | return TX_4X4; | 1745 | 0 | } |
Unexecuted instantiation: convolve.c:get_tx_size Unexecuted instantiation: entropy.c:get_tx_size Unexecuted instantiation: entropymode.c:get_tx_size Unexecuted instantiation: entropymv.c:get_tx_size Unexecuted instantiation: mvref_common.c:get_tx_size Unexecuted instantiation: pred_common.c:get_tx_size Unexecuted instantiation: quant_common.c:get_tx_size Unexecuted instantiation: reconinter.c:get_tx_size Unexecuted instantiation: reconintra.c:get_tx_size Unexecuted instantiation: resize.c:get_tx_size Unexecuted instantiation: restoration.c:get_tx_size Unexecuted instantiation: scan.c:get_tx_size Unexecuted instantiation: thread_common.c:get_tx_size Unexecuted instantiation: tile_common.c:get_tx_size Unexecuted instantiation: txb_common.c:get_tx_size Unexecuted instantiation: warped_motion.c:get_tx_size Unexecuted instantiation: cfl_sse2.c:get_tx_size Unexecuted instantiation: resize_sse2.c:get_tx_size Unexecuted instantiation: cfl_ssse3.c:get_tx_size Unexecuted instantiation: resize_ssse3.c:get_tx_size Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_tx_size Unexecuted instantiation: filterintra_sse4.c:get_tx_size Unexecuted instantiation: cfl_avx2.c:get_tx_size Unexecuted instantiation: resize_avx2.c:get_tx_size |
1746 | | |
1747 | | static inline int txfm_partition_context(const TXFM_CONTEXT *const above_ctx, |
1748 | | const TXFM_CONTEXT *const left_ctx, |
1749 | 1.49M | BLOCK_SIZE bsize, TX_SIZE tx_size) { |
1750 | 1.49M | const uint8_t txw = tx_size_wide[tx_size]; |
1751 | 1.49M | const uint8_t txh = tx_size_high[tx_size]; |
1752 | 1.49M | const int above = *above_ctx < txw; |
1753 | 1.49M | const int left = *left_ctx < txh; |
1754 | 1.49M | int category = TXFM_PARTITION_CONTEXTS; |
1755 | | |
1756 | | // dummy return, not used by others. |
1757 | 1.49M | if (tx_size <= TX_4X4) return 0; |
1758 | | |
1759 | 1.49M | TX_SIZE max_tx_size = |
1760 | 1.49M | get_sqr_tx_size(AOMMAX(block_size_wide[bsize], block_size_high[bsize])); |
1761 | | |
1762 | 1.49M | if (max_tx_size >= TX_8X8) { |
1763 | 1.49M | category = |
1764 | 1.49M | (txsize_sqr_up_map[tx_size] != max_tx_size && max_tx_size > TX_8X8) + |
1765 | 1.49M | (TX_SIZES - 1 - max_tx_size) * 2; |
1766 | 1.49M | } |
1767 | 1.49M | assert(category != TXFM_PARTITION_CONTEXTS); |
1768 | 1.49M | return category * 3 + above + left; |
1769 | 1.49M | } Unexecuted instantiation: av1_dx_iface.c:txfm_partition_context decodeframe.c:txfm_partition_context Line | Count | Source | 1749 | 1.49M | BLOCK_SIZE bsize, TX_SIZE tx_size) { | 1750 | 1.49M | const uint8_t txw = tx_size_wide[tx_size]; | 1751 | 1.49M | const uint8_t txh = tx_size_high[tx_size]; | 1752 | 1.49M | const int above = *above_ctx < txw; | 1753 | 1.49M | const int left = *left_ctx < txh; | 1754 | 1.49M | int category = TXFM_PARTITION_CONTEXTS; | 1755 | | | 1756 | | // dummy return, not used by others. | 1757 | 1.49M | if (tx_size <= TX_4X4) return 0; | 1758 | | | 1759 | 1.49M | TX_SIZE max_tx_size = | 1760 | 1.49M | get_sqr_tx_size(AOMMAX(block_size_wide[bsize], block_size_high[bsize])); | 1761 | | | 1762 | 1.49M | if (max_tx_size >= TX_8X8) { | 1763 | 1.49M | category = | 1764 | 1.49M | (txsize_sqr_up_map[tx_size] != max_tx_size && max_tx_size > TX_8X8) + | 1765 | 1.49M | (TX_SIZES - 1 - max_tx_size) * 2; | 1766 | 1.49M | } | 1767 | 1.49M | assert(category != TXFM_PARTITION_CONTEXTS); | 1768 | 1.49M | return category * 3 + above + left; | 1769 | 1.49M | } |
Unexecuted instantiation: decodemv.c:txfm_partition_context Unexecuted instantiation: decoder.c:txfm_partition_context Unexecuted instantiation: decodetxb.c:txfm_partition_context Unexecuted instantiation: detokenize.c:txfm_partition_context Unexecuted instantiation: obu.c:txfm_partition_context Unexecuted instantiation: alloccommon.c:txfm_partition_context Unexecuted instantiation: av1_loopfilter.c:txfm_partition_context Unexecuted instantiation: blockd.c:txfm_partition_context Unexecuted instantiation: cdef.c:txfm_partition_context Unexecuted instantiation: cdef_block.c:txfm_partition_context Unexecuted instantiation: cfl.c:txfm_partition_context Unexecuted instantiation: convolve.c:txfm_partition_context Unexecuted instantiation: entropy.c:txfm_partition_context Unexecuted instantiation: entropymode.c:txfm_partition_context Unexecuted instantiation: entropymv.c:txfm_partition_context Unexecuted instantiation: mvref_common.c:txfm_partition_context Unexecuted instantiation: pred_common.c:txfm_partition_context Unexecuted instantiation: quant_common.c:txfm_partition_context Unexecuted instantiation: reconinter.c:txfm_partition_context Unexecuted instantiation: reconintra.c:txfm_partition_context Unexecuted instantiation: resize.c:txfm_partition_context Unexecuted instantiation: restoration.c:txfm_partition_context Unexecuted instantiation: scan.c:txfm_partition_context Unexecuted instantiation: thread_common.c:txfm_partition_context Unexecuted instantiation: tile_common.c:txfm_partition_context Unexecuted instantiation: txb_common.c:txfm_partition_context Unexecuted instantiation: warped_motion.c:txfm_partition_context Unexecuted instantiation: cfl_sse2.c:txfm_partition_context Unexecuted instantiation: resize_sse2.c:txfm_partition_context Unexecuted instantiation: cfl_ssse3.c:txfm_partition_context Unexecuted instantiation: resize_ssse3.c:txfm_partition_context Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:txfm_partition_context Unexecuted instantiation: filterintra_sse4.c:txfm_partition_context Unexecuted instantiation: cfl_avx2.c:txfm_partition_context Unexecuted instantiation: resize_avx2.c:txfm_partition_context |
1770 | | |
1771 | | // Compute the next partition in the direction of the sb_type stored in the mi |
1772 | | // array, starting with bsize. |
1773 | | static inline PARTITION_TYPE get_partition(const AV1_COMMON *const cm, |
1774 | | int mi_row, int mi_col, |
1775 | 5.28M | BLOCK_SIZE bsize) { |
1776 | 5.28M | const CommonModeInfoParams *const mi_params = &cm->mi_params; |
1777 | 5.28M | if (mi_row >= mi_params->mi_rows || mi_col >= mi_params->mi_cols) |
1778 | 0 | return PARTITION_INVALID; |
1779 | | |
1780 | 5.28M | const int offset = mi_row * mi_params->mi_stride + mi_col; |
1781 | 5.28M | MB_MODE_INFO **mi = mi_params->mi_grid_base + offset; |
1782 | 5.28M | const BLOCK_SIZE subsize = mi[0]->bsize; |
1783 | | |
1784 | 5.28M | assert(bsize < BLOCK_SIZES_ALL); |
1785 | | |
1786 | 5.28M | if (subsize == bsize) return PARTITION_NONE; |
1787 | | |
1788 | 3.09M | const int bhigh = mi_size_high[bsize]; |
1789 | 3.09M | const int bwide = mi_size_wide[bsize]; |
1790 | 3.09M | const int sshigh = mi_size_high[subsize]; |
1791 | 3.09M | const int sswide = mi_size_wide[subsize]; |
1792 | | |
1793 | 3.09M | if (bsize > BLOCK_8X8 && mi_row + bwide / 2 < mi_params->mi_rows && |
1794 | 3.09M | mi_col + bhigh / 2 < mi_params->mi_cols) { |
1795 | | // In this case, the block might be using an extended partition |
1796 | | // type. |
1797 | 2.56M | const MB_MODE_INFO *const mbmi_right = mi[bwide / 2]; |
1798 | 2.56M | const MB_MODE_INFO *const mbmi_below = mi[bhigh / 2 * mi_params->mi_stride]; |
1799 | | |
1800 | 2.56M | if (sswide == bwide) { |
1801 | | // Smaller height but same width. Is PARTITION_HORZ_4, PARTITION_HORZ or |
1802 | | // PARTITION_HORZ_B. To distinguish the latter two, check if the lower |
1803 | | // half was split. |
1804 | 864k | if (sshigh * 4 == bhigh) return PARTITION_HORZ_4; |
1805 | 456k | assert(sshigh * 2 == bhigh); |
1806 | | |
1807 | 456k | if (mbmi_below->bsize == subsize) |
1808 | 346k | return PARTITION_HORZ; |
1809 | 110k | else |
1810 | 110k | return PARTITION_HORZ_B; |
1811 | 1.70M | } else if (sshigh == bhigh) { |
1812 | | // Smaller width but same height. Is PARTITION_VERT_4, PARTITION_VERT or |
1813 | | // PARTITION_VERT_B. To distinguish the latter two, check if the right |
1814 | | // half was split. |
1815 | 391k | if (sswide * 4 == bwide) return PARTITION_VERT_4; |
1816 | 257k | assert(sswide * 2 == bwide); |
1817 | | |
1818 | 257k | if (mbmi_right->bsize == subsize) |
1819 | 178k | return PARTITION_VERT; |
1820 | 78.6k | else |
1821 | 78.6k | return PARTITION_VERT_B; |
1822 | 1.30M | } else { |
1823 | | // Smaller width and smaller height. Might be PARTITION_SPLIT or could be |
1824 | | // PARTITION_HORZ_A or PARTITION_VERT_A. If subsize isn't halved in both |
1825 | | // dimensions, we immediately know this is a split (which will recurse to |
1826 | | // get to subsize). Otherwise look down and to the right. With |
1827 | | // PARTITION_VERT_A, the right block will have height bhigh; with |
1828 | | // PARTITION_HORZ_A, the lower block with have width bwide. Otherwise |
1829 | | // it's PARTITION_SPLIT. |
1830 | 1.30M | if (sswide * 2 != bwide || sshigh * 2 != bhigh) return PARTITION_SPLIT; |
1831 | | |
1832 | 632k | if (mi_size_wide[mbmi_below->bsize] == bwide) return PARTITION_HORZ_A; |
1833 | 511k | if (mi_size_high[mbmi_right->bsize] == bhigh) return PARTITION_VERT_A; |
1834 | | |
1835 | 446k | return PARTITION_SPLIT; |
1836 | 511k | } |
1837 | 2.56M | } |
1838 | 525k | const int vert_split = sswide < bwide; |
1839 | 525k | const int horz_split = sshigh < bhigh; |
1840 | 525k | const int split_idx = (vert_split << 1) | horz_split; |
1841 | 525k | assert(split_idx != 0); |
1842 | | |
1843 | 526k | static const PARTITION_TYPE base_partitions[4] = { |
1844 | 526k | PARTITION_INVALID, PARTITION_HORZ, PARTITION_VERT, PARTITION_SPLIT |
1845 | 526k | }; |
1846 | | |
1847 | 526k | return base_partitions[split_idx]; |
1848 | 525k | } Unexecuted instantiation: av1_dx_iface.c:get_partition decodeframe.c:get_partition Line | Count | Source | 1775 | 5.28M | BLOCK_SIZE bsize) { | 1776 | 5.28M | const CommonModeInfoParams *const mi_params = &cm->mi_params; | 1777 | 5.28M | if (mi_row >= mi_params->mi_rows || mi_col >= mi_params->mi_cols) | 1778 | 0 | return PARTITION_INVALID; | 1779 | | | 1780 | 5.28M | const int offset = mi_row * mi_params->mi_stride + mi_col; | 1781 | 5.28M | MB_MODE_INFO **mi = mi_params->mi_grid_base + offset; | 1782 | 5.28M | const BLOCK_SIZE subsize = mi[0]->bsize; | 1783 | | | 1784 | 5.28M | assert(bsize < BLOCK_SIZES_ALL); | 1785 | | | 1786 | 5.28M | if (subsize == bsize) return PARTITION_NONE; | 1787 | | | 1788 | 3.09M | const int bhigh = mi_size_high[bsize]; | 1789 | 3.09M | const int bwide = mi_size_wide[bsize]; | 1790 | 3.09M | const int sshigh = mi_size_high[subsize]; | 1791 | 3.09M | const int sswide = mi_size_wide[subsize]; | 1792 | | | 1793 | 3.09M | if (bsize > BLOCK_8X8 && mi_row + bwide / 2 < mi_params->mi_rows && | 1794 | 3.09M | mi_col + bhigh / 2 < mi_params->mi_cols) { | 1795 | | // In this case, the block might be using an extended partition | 1796 | | // type. | 1797 | 2.56M | const MB_MODE_INFO *const mbmi_right = mi[bwide / 2]; | 1798 | 2.56M | const MB_MODE_INFO *const mbmi_below = mi[bhigh / 2 * mi_params->mi_stride]; | 1799 | | | 1800 | 2.56M | if (sswide == bwide) { | 1801 | | // Smaller height but same width. Is PARTITION_HORZ_4, PARTITION_HORZ or | 1802 | | // PARTITION_HORZ_B. To distinguish the latter two, check if the lower | 1803 | | // half was split. | 1804 | 864k | if (sshigh * 4 == bhigh) return PARTITION_HORZ_4; | 1805 | 456k | assert(sshigh * 2 == bhigh); | 1806 | | | 1807 | 456k | if (mbmi_below->bsize == subsize) | 1808 | 346k | return PARTITION_HORZ; | 1809 | 110k | else | 1810 | 110k | return PARTITION_HORZ_B; | 1811 | 1.70M | } else if (sshigh == bhigh) { | 1812 | | // Smaller width but same height. Is PARTITION_VERT_4, PARTITION_VERT or | 1813 | | // PARTITION_VERT_B. To distinguish the latter two, check if the right | 1814 | | // half was split. | 1815 | 391k | if (sswide * 4 == bwide) return PARTITION_VERT_4; | 1816 | 257k | assert(sswide * 2 == bwide); | 1817 | | | 1818 | 257k | if (mbmi_right->bsize == subsize) | 1819 | 178k | return PARTITION_VERT; | 1820 | 78.6k | else | 1821 | 78.6k | return PARTITION_VERT_B; | 1822 | 1.30M | } else { | 1823 | | // Smaller width and smaller height. Might be PARTITION_SPLIT or could be | 1824 | | // PARTITION_HORZ_A or PARTITION_VERT_A. If subsize isn't halved in both | 1825 | | // dimensions, we immediately know this is a split (which will recurse to | 1826 | | // get to subsize). Otherwise look down and to the right. With | 1827 | | // PARTITION_VERT_A, the right block will have height bhigh; with | 1828 | | // PARTITION_HORZ_A, the lower block with have width bwide. Otherwise | 1829 | | // it's PARTITION_SPLIT. | 1830 | 1.30M | if (sswide * 2 != bwide || sshigh * 2 != bhigh) return PARTITION_SPLIT; | 1831 | | | 1832 | 632k | if (mi_size_wide[mbmi_below->bsize] == bwide) return PARTITION_HORZ_A; | 1833 | 511k | if (mi_size_high[mbmi_right->bsize] == bhigh) return PARTITION_VERT_A; | 1834 | | | 1835 | 446k | return PARTITION_SPLIT; | 1836 | 511k | } | 1837 | 2.56M | } | 1838 | 525k | const int vert_split = sswide < bwide; | 1839 | 525k | const int horz_split = sshigh < bhigh; | 1840 | 525k | const int split_idx = (vert_split << 1) | horz_split; | 1841 | 525k | assert(split_idx != 0); | 1842 | | | 1843 | 526k | static const PARTITION_TYPE base_partitions[4] = { | 1844 | 526k | PARTITION_INVALID, PARTITION_HORZ, PARTITION_VERT, PARTITION_SPLIT | 1845 | 526k | }; | 1846 | | | 1847 | 526k | return base_partitions[split_idx]; | 1848 | 525k | } |
Unexecuted instantiation: decodemv.c:get_partition Unexecuted instantiation: decoder.c:get_partition Unexecuted instantiation: decodetxb.c:get_partition Unexecuted instantiation: detokenize.c:get_partition Unexecuted instantiation: obu.c:get_partition Unexecuted instantiation: alloccommon.c:get_partition Unexecuted instantiation: av1_loopfilter.c:get_partition Unexecuted instantiation: blockd.c:get_partition Unexecuted instantiation: cdef.c:get_partition Unexecuted instantiation: cdef_block.c:get_partition Unexecuted instantiation: cfl.c:get_partition Unexecuted instantiation: convolve.c:get_partition Unexecuted instantiation: entropy.c:get_partition Unexecuted instantiation: entropymode.c:get_partition Unexecuted instantiation: entropymv.c:get_partition Unexecuted instantiation: mvref_common.c:get_partition Unexecuted instantiation: pred_common.c:get_partition Unexecuted instantiation: quant_common.c:get_partition Unexecuted instantiation: reconinter.c:get_partition Unexecuted instantiation: reconintra.c:get_partition Unexecuted instantiation: resize.c:get_partition Unexecuted instantiation: restoration.c:get_partition Unexecuted instantiation: scan.c:get_partition Unexecuted instantiation: thread_common.c:get_partition Unexecuted instantiation: tile_common.c:get_partition Unexecuted instantiation: txb_common.c:get_partition Unexecuted instantiation: warped_motion.c:get_partition Unexecuted instantiation: cfl_sse2.c:get_partition Unexecuted instantiation: resize_sse2.c:get_partition Unexecuted instantiation: cfl_ssse3.c:get_partition Unexecuted instantiation: resize_ssse3.c:get_partition Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_partition Unexecuted instantiation: filterintra_sse4.c:get_partition Unexecuted instantiation: cfl_avx2.c:get_partition Unexecuted instantiation: resize_avx2.c:get_partition |
1849 | | |
1850 | | static inline void set_sb_size(SequenceHeader *const seq_params, |
1851 | 80.6k | BLOCK_SIZE sb_size) { |
1852 | 80.6k | seq_params->sb_size = sb_size; |
1853 | 80.6k | seq_params->mib_size = mi_size_wide[seq_params->sb_size]; |
1854 | 80.6k | seq_params->mib_size_log2 = mi_size_wide_log2[seq_params->sb_size]; |
1855 | 80.6k | } Unexecuted instantiation: av1_dx_iface.c:set_sb_size decodeframe.c:set_sb_size Line | Count | Source | 1851 | 80.6k | BLOCK_SIZE sb_size) { | 1852 | 80.6k | seq_params->sb_size = sb_size; | 1853 | 80.6k | seq_params->mib_size = mi_size_wide[seq_params->sb_size]; | 1854 | 80.6k | seq_params->mib_size_log2 = mi_size_wide_log2[seq_params->sb_size]; | 1855 | 80.6k | } |
Unexecuted instantiation: decodemv.c:set_sb_size Unexecuted instantiation: decoder.c:set_sb_size Unexecuted instantiation: decodetxb.c:set_sb_size Unexecuted instantiation: detokenize.c:set_sb_size Unexecuted instantiation: obu.c:set_sb_size Unexecuted instantiation: alloccommon.c:set_sb_size Unexecuted instantiation: av1_loopfilter.c:set_sb_size Unexecuted instantiation: blockd.c:set_sb_size Unexecuted instantiation: cdef.c:set_sb_size Unexecuted instantiation: cdef_block.c:set_sb_size Unexecuted instantiation: cfl.c:set_sb_size Unexecuted instantiation: convolve.c:set_sb_size Unexecuted instantiation: entropy.c:set_sb_size Unexecuted instantiation: entropymode.c:set_sb_size Unexecuted instantiation: entropymv.c:set_sb_size Unexecuted instantiation: mvref_common.c:set_sb_size Unexecuted instantiation: pred_common.c:set_sb_size Unexecuted instantiation: quant_common.c:set_sb_size Unexecuted instantiation: reconinter.c:set_sb_size Unexecuted instantiation: reconintra.c:set_sb_size Unexecuted instantiation: resize.c:set_sb_size Unexecuted instantiation: restoration.c:set_sb_size Unexecuted instantiation: scan.c:set_sb_size Unexecuted instantiation: thread_common.c:set_sb_size Unexecuted instantiation: tile_common.c:set_sb_size Unexecuted instantiation: txb_common.c:set_sb_size Unexecuted instantiation: warped_motion.c:set_sb_size Unexecuted instantiation: cfl_sse2.c:set_sb_size Unexecuted instantiation: resize_sse2.c:set_sb_size Unexecuted instantiation: cfl_ssse3.c:set_sb_size Unexecuted instantiation: resize_ssse3.c:set_sb_size Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_sb_size Unexecuted instantiation: filterintra_sse4.c:set_sb_size Unexecuted instantiation: cfl_avx2.c:set_sb_size Unexecuted instantiation: resize_avx2.c:set_sb_size |
1856 | | |
1857 | | // Returns true if the frame is fully lossless at the coded resolution. |
1858 | | // Note: If super-resolution is used, such a frame will still NOT be lossless at |
1859 | | // the upscaled resolution. |
1860 | | static inline int is_coded_lossless(const AV1_COMMON *cm, |
1861 | 186k | const MACROBLOCKD *xd) { |
1862 | 186k | int coded_lossless = 1; |
1863 | 186k | if (cm->seg.enabled) { |
1864 | 28.1k | for (int i = 0; i < MAX_SEGMENTS; ++i) { |
1865 | 27.7k | if (!xd->lossless[i]) { |
1866 | 22.6k | coded_lossless = 0; |
1867 | 22.6k | break; |
1868 | 22.6k | } |
1869 | 27.7k | } |
1870 | 163k | } else { |
1871 | 163k | coded_lossless = xd->lossless[0]; |
1872 | 163k | } |
1873 | 186k | return coded_lossless; |
1874 | 186k | } Unexecuted instantiation: av1_dx_iface.c:is_coded_lossless decodeframe.c:is_coded_lossless Line | Count | Source | 1861 | 186k | const MACROBLOCKD *xd) { | 1862 | 186k | int coded_lossless = 1; | 1863 | 186k | if (cm->seg.enabled) { | 1864 | 28.1k | for (int i = 0; i < MAX_SEGMENTS; ++i) { | 1865 | 27.7k | if (!xd->lossless[i]) { | 1866 | 22.6k | coded_lossless = 0; | 1867 | 22.6k | break; | 1868 | 22.6k | } | 1869 | 27.7k | } | 1870 | 163k | } else { | 1871 | 163k | coded_lossless = xd->lossless[0]; | 1872 | 163k | } | 1873 | 186k | return coded_lossless; | 1874 | 186k | } |
Unexecuted instantiation: decodemv.c:is_coded_lossless Unexecuted instantiation: decoder.c:is_coded_lossless Unexecuted instantiation: decodetxb.c:is_coded_lossless Unexecuted instantiation: detokenize.c:is_coded_lossless Unexecuted instantiation: obu.c:is_coded_lossless Unexecuted instantiation: alloccommon.c:is_coded_lossless Unexecuted instantiation: av1_loopfilter.c:is_coded_lossless Unexecuted instantiation: blockd.c:is_coded_lossless Unexecuted instantiation: cdef.c:is_coded_lossless Unexecuted instantiation: cdef_block.c:is_coded_lossless Unexecuted instantiation: cfl.c:is_coded_lossless Unexecuted instantiation: convolve.c:is_coded_lossless Unexecuted instantiation: entropy.c:is_coded_lossless Unexecuted instantiation: entropymode.c:is_coded_lossless Unexecuted instantiation: entropymv.c:is_coded_lossless Unexecuted instantiation: mvref_common.c:is_coded_lossless Unexecuted instantiation: pred_common.c:is_coded_lossless Unexecuted instantiation: quant_common.c:is_coded_lossless Unexecuted instantiation: reconinter.c:is_coded_lossless Unexecuted instantiation: reconintra.c:is_coded_lossless Unexecuted instantiation: resize.c:is_coded_lossless Unexecuted instantiation: restoration.c:is_coded_lossless Unexecuted instantiation: scan.c:is_coded_lossless Unexecuted instantiation: thread_common.c:is_coded_lossless Unexecuted instantiation: tile_common.c:is_coded_lossless Unexecuted instantiation: txb_common.c:is_coded_lossless Unexecuted instantiation: warped_motion.c:is_coded_lossless Unexecuted instantiation: cfl_sse2.c:is_coded_lossless Unexecuted instantiation: resize_sse2.c:is_coded_lossless Unexecuted instantiation: cfl_ssse3.c:is_coded_lossless Unexecuted instantiation: resize_ssse3.c:is_coded_lossless Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_coded_lossless Unexecuted instantiation: filterintra_sse4.c:is_coded_lossless Unexecuted instantiation: cfl_avx2.c:is_coded_lossless Unexecuted instantiation: resize_avx2.c:is_coded_lossless |
1875 | | |
1876 | 94.3k | static inline int is_valid_seq_level_idx(AV1_LEVEL seq_level_idx) { |
1877 | 94.3k | return seq_level_idx == SEQ_LEVEL_MAX || |
1878 | 94.3k | (seq_level_idx < SEQ_LEVELS && |
1879 | | // The following levels are currently undefined. |
1880 | 91.6k | seq_level_idx != SEQ_LEVEL_2_2 && seq_level_idx != SEQ_LEVEL_2_3 && |
1881 | 91.6k | seq_level_idx != SEQ_LEVEL_3_2 && seq_level_idx != SEQ_LEVEL_3_3 && |
1882 | 91.6k | seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3 |
1883 | 91.6k | #if !CONFIG_CWG_C013 |
1884 | 91.6k | && seq_level_idx != SEQ_LEVEL_7_0 && seq_level_idx != SEQ_LEVEL_7_1 && |
1885 | 91.6k | seq_level_idx != SEQ_LEVEL_7_2 && seq_level_idx != SEQ_LEVEL_7_3 && |
1886 | 91.6k | seq_level_idx != SEQ_LEVEL_8_0 && seq_level_idx != SEQ_LEVEL_8_1 && |
1887 | 91.6k | seq_level_idx != SEQ_LEVEL_8_2 && seq_level_idx != SEQ_LEVEL_8_3 |
1888 | 91.6k | #endif |
1889 | 91.6k | ); |
1890 | 94.3k | } Unexecuted instantiation: av1_dx_iface.c:is_valid_seq_level_idx Unexecuted instantiation: decodeframe.c:is_valid_seq_level_idx Unexecuted instantiation: decodemv.c:is_valid_seq_level_idx Unexecuted instantiation: decoder.c:is_valid_seq_level_idx Unexecuted instantiation: decodetxb.c:is_valid_seq_level_idx Unexecuted instantiation: detokenize.c:is_valid_seq_level_idx obu.c:is_valid_seq_level_idx Line | Count | Source | 1876 | 94.3k | static inline int is_valid_seq_level_idx(AV1_LEVEL seq_level_idx) { | 1877 | 94.3k | return seq_level_idx == SEQ_LEVEL_MAX || | 1878 | 94.3k | (seq_level_idx < SEQ_LEVELS && | 1879 | | // The following levels are currently undefined. | 1880 | 91.6k | seq_level_idx != SEQ_LEVEL_2_2 && seq_level_idx != SEQ_LEVEL_2_3 && | 1881 | 91.6k | seq_level_idx != SEQ_LEVEL_3_2 && seq_level_idx != SEQ_LEVEL_3_3 && | 1882 | 91.6k | seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3 | 1883 | 91.6k | #if !CONFIG_CWG_C013 | 1884 | 91.6k | && seq_level_idx != SEQ_LEVEL_7_0 && seq_level_idx != SEQ_LEVEL_7_1 && | 1885 | 91.6k | seq_level_idx != SEQ_LEVEL_7_2 && seq_level_idx != SEQ_LEVEL_7_3 && | 1886 | 91.6k | seq_level_idx != SEQ_LEVEL_8_0 && seq_level_idx != SEQ_LEVEL_8_1 && | 1887 | 91.6k | seq_level_idx != SEQ_LEVEL_8_2 && seq_level_idx != SEQ_LEVEL_8_3 | 1888 | 91.6k | #endif | 1889 | 91.6k | ); | 1890 | 94.3k | } |
Unexecuted instantiation: alloccommon.c:is_valid_seq_level_idx Unexecuted instantiation: av1_loopfilter.c:is_valid_seq_level_idx Unexecuted instantiation: blockd.c:is_valid_seq_level_idx Unexecuted instantiation: cdef.c:is_valid_seq_level_idx Unexecuted instantiation: cdef_block.c:is_valid_seq_level_idx Unexecuted instantiation: cfl.c:is_valid_seq_level_idx Unexecuted instantiation: convolve.c:is_valid_seq_level_idx Unexecuted instantiation: entropy.c:is_valid_seq_level_idx Unexecuted instantiation: entropymode.c:is_valid_seq_level_idx Unexecuted instantiation: entropymv.c:is_valid_seq_level_idx Unexecuted instantiation: mvref_common.c:is_valid_seq_level_idx Unexecuted instantiation: pred_common.c:is_valid_seq_level_idx Unexecuted instantiation: quant_common.c:is_valid_seq_level_idx Unexecuted instantiation: reconinter.c:is_valid_seq_level_idx Unexecuted instantiation: reconintra.c:is_valid_seq_level_idx Unexecuted instantiation: resize.c:is_valid_seq_level_idx Unexecuted instantiation: restoration.c:is_valid_seq_level_idx Unexecuted instantiation: scan.c:is_valid_seq_level_idx Unexecuted instantiation: thread_common.c:is_valid_seq_level_idx Unexecuted instantiation: tile_common.c:is_valid_seq_level_idx Unexecuted instantiation: txb_common.c:is_valid_seq_level_idx Unexecuted instantiation: warped_motion.c:is_valid_seq_level_idx Unexecuted instantiation: cfl_sse2.c:is_valid_seq_level_idx Unexecuted instantiation: resize_sse2.c:is_valid_seq_level_idx Unexecuted instantiation: cfl_ssse3.c:is_valid_seq_level_idx Unexecuted instantiation: resize_ssse3.c:is_valid_seq_level_idx Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_valid_seq_level_idx Unexecuted instantiation: filterintra_sse4.c:is_valid_seq_level_idx Unexecuted instantiation: cfl_avx2.c:is_valid_seq_level_idx Unexecuted instantiation: resize_avx2.c:is_valid_seq_level_idx |
1891 | | |
1892 | | /*!\endcond */ |
1893 | | |
1894 | | #ifdef __cplusplus |
1895 | | } // extern "C" |
1896 | | #endif |
1897 | | |
1898 | | #endif // AOM_AV1_COMMON_AV1_COMMON_INT_H_ |