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