/src/libvpx/vpx_dsp/prob.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2013 The WebM project authors. All Rights Reserved. |
3 | | * |
4 | | * Use of this source code is governed by a BSD-style license |
5 | | * that can be found in the LICENSE file in the root of the source |
6 | | * tree. An additional intellectual property rights grant can be found |
7 | | * in the file PATENTS. All contributing project authors may |
8 | | * be found in the AUTHORS file in the root of the source tree. |
9 | | */ |
10 | | |
11 | | #ifndef VPX_VPX_DSP_PROB_H_ |
12 | | #define VPX_VPX_DSP_PROB_H_ |
13 | | |
14 | | #include <assert.h> |
15 | | |
16 | | #include "./vpx_config.h" |
17 | | #include "./vpx_dsp_common.h" |
18 | | |
19 | | #include "vpx_ports/mem.h" |
20 | | |
21 | | #ifdef __cplusplus |
22 | | extern "C" { |
23 | | #endif |
24 | | |
25 | | typedef uint8_t vpx_prob; |
26 | | |
27 | 394M | #define MAX_PROB 255 |
28 | | |
29 | | #define vpx_prob_half ((vpx_prob)128) |
30 | | |
31 | | typedef int8_t vpx_tree_index; |
32 | | |
33 | | #define TREE_SIZE(leaf_count) (2 * (leaf_count) - 2) |
34 | | |
35 | | #define vpx_complement(x) (255 - (x)) |
36 | | |
37 | | #define MODE_MV_COUNT_SAT 20 |
38 | | |
39 | | /* We build coding trees compactly in arrays. |
40 | | Each node of the tree is a pair of vpx_tree_indices. |
41 | | Array index often references a corresponding probability table. |
42 | | Index <= 0 means done encoding/decoding and value = -Index, |
43 | | Index > 0 means need another bit, specification at index. |
44 | | Nonnegative indices are always even; processing begins at node 0. */ |
45 | | |
46 | | typedef const vpx_tree_index vpx_tree[]; |
47 | | |
48 | 15.1M | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { |
49 | 15.1M | assert(den != 0); |
50 | 15.1M | { |
51 | 15.1M | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); |
52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; |
53 | 15.1M | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); |
54 | 15.1M | return (vpx_prob)clipped_prob; |
55 | 15.1M | } |
56 | 15.1M | } Unexecuted instantiation: vp9_dx_iface.c:get_prob Unexecuted instantiation: vp9_decodeframe.c:get_prob Unexecuted instantiation: vp9_detokenize.c:get_prob Unexecuted instantiation: vp9_decoder.c:get_prob Unexecuted instantiation: vp9_dsubexp.c:get_prob Unexecuted instantiation: yv12config.c:get_prob Line | Count | Source | 48 | 1.84M | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 1.84M | assert(den != 0); | 50 | 1.84M | { | 51 | 1.84M | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 1.84M | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 1.84M | return (vpx_prob)clipped_prob; | 55 | 1.84M | } | 56 | 1.84M | } |
Unexecuted instantiation: bitreader.c:get_prob Unexecuted instantiation: vp9_alloccommon.c:get_prob Unexecuted instantiation: vp9_blockd.c:get_prob Line | Count | Source | 48 | 4.19M | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 4.19M | assert(den != 0); | 50 | 4.19M | { | 51 | 4.19M | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 4.19M | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 4.19M | return (vpx_prob)clipped_prob; | 55 | 4.19M | } | 56 | 4.19M | } |
vp9_entropymode.c:get_prob Line | Count | Source | 48 | 335k | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 335k | assert(den != 0); | 50 | 335k | { | 51 | 335k | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 335k | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 335k | return (vpx_prob)clipped_prob; | 55 | 335k | } | 56 | 335k | } |
Line | Count | Source | 48 | 173k | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 173k | assert(den != 0); | 50 | 173k | { | 51 | 173k | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 173k | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 173k | return (vpx_prob)clipped_prob; | 55 | 173k | } | 56 | 173k | } |
Unexecuted instantiation: vp9_idct.c:get_prob Unexecuted instantiation: vp9_pred_common.c:get_prob Unexecuted instantiation: vp9_seg_common.c:get_prob Unexecuted instantiation: vp9_tile_common.c:get_prob Unexecuted instantiation: vp9_loopfilter.c:get_prob Unexecuted instantiation: vp9_thread_common.c:get_prob Unexecuted instantiation: vp9_quant_common.c:get_prob Unexecuted instantiation: vp9_reconinter.c:get_prob Unexecuted instantiation: vp9_reconintra.c:get_prob Unexecuted instantiation: vp9_scan.c:get_prob Unexecuted instantiation: vp9_frame_scale.c:get_prob Unexecuted instantiation: vp9_encoder.c:get_prob Unexecuted instantiation: vp9_picklpf.c:get_prob Unexecuted instantiation: vp9_quantize.c:get_prob Unexecuted instantiation: vp9_ratectrl.c:get_prob Unexecuted instantiation: vp9_rd.c:get_prob Unexecuted instantiation: vp9_segmentation.c:get_prob Unexecuted instantiation: vp9_speed_features.c:get_prob Unexecuted instantiation: vp9_svc_layercontext.c:get_prob Unexecuted instantiation: vp9_tokenize.c:get_prob Unexecuted instantiation: vp9_aq_variance.c:get_prob Unexecuted instantiation: vp9_aq_360.c:get_prob Unexecuted instantiation: vp9_aq_cyclicrefresh.c:get_prob Unexecuted instantiation: vp9_aq_complexity.c:get_prob Unexecuted instantiation: vp9_alt_ref_aq.c:get_prob Unexecuted instantiation: vp9_skin_detection.c:get_prob Unexecuted instantiation: vp9_noise_estimate.c:get_prob Unexecuted instantiation: vp9_ext_ratectrl.c:get_prob Unexecuted instantiation: vp9_temporal_filter.c:get_prob Unexecuted instantiation: vp9_tpl_model.c:get_prob Unexecuted instantiation: vp9_mbgraph.c:get_prob Unexecuted instantiation: temporal_filter_sse4.c:get_prob Unexecuted instantiation: vp9_quantize_sse2.c:get_prob Unexecuted instantiation: vp9_quantize_ssse3.c:get_prob Unexecuted instantiation: vp9_quantize_avx2.c:get_prob Unexecuted instantiation: highbd_temporal_filter_sse4.c:get_prob Unexecuted instantiation: vp9_decodemv.c:get_prob Unexecuted instantiation: quantize.c:get_prob Unexecuted instantiation: quantize_sse2.c:get_prob Unexecuted instantiation: quantize_ssse3.c:get_prob Unexecuted instantiation: quantize_avx.c:get_prob Unexecuted instantiation: quantize_avx2.c:get_prob Unexecuted instantiation: highbd_quantize_intrin_sse2.c:get_prob Unexecuted instantiation: highbd_quantize_intrin_avx2.c:get_prob Unexecuted instantiation: vp9_cx_iface.c:get_prob Line | Count | Source | 48 | 5.89M | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 5.89M | assert(den != 0); | 50 | 5.89M | { | 51 | 5.89M | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 5.89M | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 5.89M | return (vpx_prob)clipped_prob; | 55 | 5.89M | } | 56 | 5.89M | } |
Unexecuted instantiation: vp9_context_tree.c:get_prob Unexecuted instantiation: vp9_cost.c:get_prob Unexecuted instantiation: vp9_dct.c:get_prob Unexecuted instantiation: vp9_encodeframe.c:get_prob Unexecuted instantiation: vp9_encodemb.c:get_prob Line | Count | Source | 48 | 813k | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 813k | assert(den != 0); | 50 | 813k | { | 51 | 813k | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 813k | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 813k | return (vpx_prob)clipped_prob; | 55 | 813k | } | 56 | 813k | } |
Unexecuted instantiation: vp9_ethread.c:get_prob Unexecuted instantiation: vp9_firstpass.c:get_prob Unexecuted instantiation: vp9_lookahead.c:get_prob Unexecuted instantiation: vp9_multi_thread.c:get_prob Unexecuted instantiation: vp9_mcomp.c:get_prob Unexecuted instantiation: vp9_rdopt.c:get_prob Unexecuted instantiation: vp9_pickmode.c:get_prob Line | Count | Source | 48 | 1.90M | static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { | 49 | 1.90M | assert(den != 0); | 50 | 1.90M | { | 51 | 1.90M | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); | 52 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; | 53 | 1.90M | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); | 54 | 1.90M | return (vpx_prob)clipped_prob; | 55 | 1.90M | } | 56 | 1.90M | } |
Unexecuted instantiation: vp9_treewriter.c:get_prob Unexecuted instantiation: bitwriter.c:get_prob Unexecuted instantiation: vp9_mvref_common.c:get_prob |
57 | | |
58 | 120M | static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { |
59 | 120M | const unsigned int den = n0 + n1; |
60 | 120M | if (den == 0) return 128u; |
61 | 12.8M | return get_prob(n0, den); |
62 | 120M | } Unexecuted instantiation: vp9_dx_iface.c:get_binary_prob Unexecuted instantiation: vp9_decodeframe.c:get_binary_prob Unexecuted instantiation: vp9_detokenize.c:get_binary_prob Unexecuted instantiation: vp9_decoder.c:get_binary_prob Unexecuted instantiation: vp9_dsubexp.c:get_binary_prob Unexecuted instantiation: yv12config.c:get_binary_prob Unexecuted instantiation: prob.c:get_binary_prob Unexecuted instantiation: bitreader.c:get_binary_prob Unexecuted instantiation: vp9_alloccommon.c:get_binary_prob Unexecuted instantiation: vp9_blockd.c:get_binary_prob vp9_entropy.c:get_binary_prob Line | Count | Source | 58 | 96.3M | static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { | 59 | 96.3M | const unsigned int den = n0 + n1; | 60 | 96.3M | if (den == 0) return 128u; | 61 | 4.19M | return get_prob(n0, den); | 62 | 96.3M | } |
Unexecuted instantiation: vp9_entropymode.c:get_binary_prob Unexecuted instantiation: vp9_entropymv.c:get_binary_prob Unexecuted instantiation: vp9_idct.c:get_binary_prob Unexecuted instantiation: vp9_pred_common.c:get_binary_prob Unexecuted instantiation: vp9_seg_common.c:get_binary_prob Unexecuted instantiation: vp9_tile_common.c:get_binary_prob Unexecuted instantiation: vp9_loopfilter.c:get_binary_prob Unexecuted instantiation: vp9_thread_common.c:get_binary_prob Unexecuted instantiation: vp9_quant_common.c:get_binary_prob Unexecuted instantiation: vp9_reconinter.c:get_binary_prob Unexecuted instantiation: vp9_reconintra.c:get_binary_prob Unexecuted instantiation: vp9_scan.c:get_binary_prob Unexecuted instantiation: vp9_frame_scale.c:get_binary_prob Unexecuted instantiation: vp9_encoder.c:get_binary_prob Unexecuted instantiation: vp9_picklpf.c:get_binary_prob Unexecuted instantiation: vp9_quantize.c:get_binary_prob Unexecuted instantiation: vp9_ratectrl.c:get_binary_prob Unexecuted instantiation: vp9_rd.c:get_binary_prob Unexecuted instantiation: vp9_segmentation.c:get_binary_prob Unexecuted instantiation: vp9_speed_features.c:get_binary_prob Unexecuted instantiation: vp9_svc_layercontext.c:get_binary_prob Unexecuted instantiation: vp9_tokenize.c:get_binary_prob Unexecuted instantiation: vp9_aq_variance.c:get_binary_prob Unexecuted instantiation: vp9_aq_360.c:get_binary_prob Unexecuted instantiation: vp9_aq_cyclicrefresh.c:get_binary_prob Unexecuted instantiation: vp9_aq_complexity.c:get_binary_prob Unexecuted instantiation: vp9_alt_ref_aq.c:get_binary_prob Unexecuted instantiation: vp9_skin_detection.c:get_binary_prob Unexecuted instantiation: vp9_noise_estimate.c:get_binary_prob Unexecuted instantiation: vp9_ext_ratectrl.c:get_binary_prob Unexecuted instantiation: vp9_temporal_filter.c:get_binary_prob Unexecuted instantiation: vp9_tpl_model.c:get_binary_prob Unexecuted instantiation: vp9_mbgraph.c:get_binary_prob Unexecuted instantiation: temporal_filter_sse4.c:get_binary_prob Unexecuted instantiation: vp9_quantize_sse2.c:get_binary_prob Unexecuted instantiation: vp9_quantize_ssse3.c:get_binary_prob Unexecuted instantiation: vp9_quantize_avx2.c:get_binary_prob Unexecuted instantiation: highbd_temporal_filter_sse4.c:get_binary_prob Unexecuted instantiation: vp9_decodemv.c:get_binary_prob Unexecuted instantiation: quantize.c:get_binary_prob Unexecuted instantiation: quantize_sse2.c:get_binary_prob Unexecuted instantiation: quantize_ssse3.c:get_binary_prob Unexecuted instantiation: quantize_avx.c:get_binary_prob Unexecuted instantiation: quantize_avx2.c:get_binary_prob Unexecuted instantiation: highbd_quantize_intrin_sse2.c:get_binary_prob Unexecuted instantiation: highbd_quantize_intrin_avx2.c:get_binary_prob Unexecuted instantiation: vp9_cx_iface.c:get_binary_prob vp9_bitstream.c:get_binary_prob Line | Count | Source | 58 | 15.6M | static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { | 59 | 15.6M | const unsigned int den = n0 + n1; | 60 | 15.6M | if (den == 0) return 128u; | 61 | 5.89M | return get_prob(n0, den); | 62 | 15.6M | } |
Unexecuted instantiation: vp9_context_tree.c:get_binary_prob Unexecuted instantiation: vp9_cost.c:get_binary_prob Unexecuted instantiation: vp9_dct.c:get_binary_prob Unexecuted instantiation: vp9_encodeframe.c:get_binary_prob Unexecuted instantiation: vp9_encodemb.c:get_binary_prob vp9_encodemv.c:get_binary_prob Line | Count | Source | 58 | 2.76M | static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { | 59 | 2.76M | const unsigned int den = n0 + n1; | 60 | 2.76M | if (den == 0) return 128u; | 61 | 813k | return get_prob(n0, den); | 62 | 2.76M | } |
Unexecuted instantiation: vp9_ethread.c:get_binary_prob Unexecuted instantiation: vp9_firstpass.c:get_binary_prob Unexecuted instantiation: vp9_lookahead.c:get_binary_prob Unexecuted instantiation: vp9_multi_thread.c:get_binary_prob Unexecuted instantiation: vp9_mcomp.c:get_binary_prob Unexecuted instantiation: vp9_rdopt.c:get_binary_prob Unexecuted instantiation: vp9_pickmode.c:get_binary_prob vp9_subexp.c:get_binary_prob Line | Count | Source | 58 | 5.24M | static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { | 59 | 5.24M | const unsigned int den = n0 + n1; | 60 | 5.24M | if (den == 0) return 128u; | 61 | 1.90M | return get_prob(n0, den); | 62 | 5.24M | } |
Unexecuted instantiation: vp9_treewriter.c:get_binary_prob Unexecuted instantiation: bitwriter.c:get_binary_prob Unexecuted instantiation: vp9_mvref_common.c:get_binary_prob |
63 | | |
64 | | /* This function assumes prob1 and prob2 are already within [1,255] range. */ |
65 | 98.7M | static INLINE vpx_prob weighted_prob(int prob1, int prob2, int factor) { |
66 | 98.7M | return ROUND_POWER_OF_TWO(prob1 * (256 - factor) + prob2 * factor, 8); |
67 | 98.7M | } Unexecuted instantiation: vp9_dx_iface.c:weighted_prob Unexecuted instantiation: vp9_decodeframe.c:weighted_prob Unexecuted instantiation: vp9_detokenize.c:weighted_prob Unexecuted instantiation: vp9_decoder.c:weighted_prob Unexecuted instantiation: vp9_dsubexp.c:weighted_prob Unexecuted instantiation: yv12config.c:weighted_prob Line | Count | Source | 65 | 1.84M | static INLINE vpx_prob weighted_prob(int prob1, int prob2, int factor) { | 66 | 1.84M | return ROUND_POWER_OF_TWO(prob1 * (256 - factor) + prob2 * factor, 8); | 67 | 1.84M | } |
Unexecuted instantiation: bitreader.c:weighted_prob Unexecuted instantiation: vp9_alloccommon.c:weighted_prob Unexecuted instantiation: vp9_blockd.c:weighted_prob vp9_entropy.c:weighted_prob Line | Count | Source | 65 | 96.3M | static INLINE vpx_prob weighted_prob(int prob1, int prob2, int factor) { | 66 | 96.3M | return ROUND_POWER_OF_TWO(prob1 * (256 - factor) + prob2 * factor, 8); | 67 | 96.3M | } |
vp9_entropymode.c:weighted_prob Line | Count | Source | 65 | 335k | static INLINE vpx_prob weighted_prob(int prob1, int prob2, int factor) { | 66 | 335k | return ROUND_POWER_OF_TWO(prob1 * (256 - factor) + prob2 * factor, 8); | 67 | 335k | } |
vp9_entropymv.c:weighted_prob Line | Count | Source | 65 | 173k | static INLINE vpx_prob weighted_prob(int prob1, int prob2, int factor) { | 66 | 173k | return ROUND_POWER_OF_TWO(prob1 * (256 - factor) + prob2 * factor, 8); | 67 | 173k | } |
Unexecuted instantiation: vp9_idct.c:weighted_prob Unexecuted instantiation: vp9_pred_common.c:weighted_prob Unexecuted instantiation: vp9_seg_common.c:weighted_prob Unexecuted instantiation: vp9_tile_common.c:weighted_prob Unexecuted instantiation: vp9_loopfilter.c:weighted_prob Unexecuted instantiation: vp9_thread_common.c:weighted_prob Unexecuted instantiation: vp9_quant_common.c:weighted_prob Unexecuted instantiation: vp9_reconinter.c:weighted_prob Unexecuted instantiation: vp9_reconintra.c:weighted_prob Unexecuted instantiation: vp9_scan.c:weighted_prob Unexecuted instantiation: vp9_frame_scale.c:weighted_prob Unexecuted instantiation: vp9_encoder.c:weighted_prob Unexecuted instantiation: vp9_picklpf.c:weighted_prob Unexecuted instantiation: vp9_quantize.c:weighted_prob Unexecuted instantiation: vp9_ratectrl.c:weighted_prob Unexecuted instantiation: vp9_rd.c:weighted_prob Unexecuted instantiation: vp9_segmentation.c:weighted_prob Unexecuted instantiation: vp9_speed_features.c:weighted_prob Unexecuted instantiation: vp9_svc_layercontext.c:weighted_prob Unexecuted instantiation: vp9_tokenize.c:weighted_prob Unexecuted instantiation: vp9_aq_variance.c:weighted_prob Unexecuted instantiation: vp9_aq_360.c:weighted_prob Unexecuted instantiation: vp9_aq_cyclicrefresh.c:weighted_prob Unexecuted instantiation: vp9_aq_complexity.c:weighted_prob Unexecuted instantiation: vp9_alt_ref_aq.c:weighted_prob Unexecuted instantiation: vp9_skin_detection.c:weighted_prob Unexecuted instantiation: vp9_noise_estimate.c:weighted_prob Unexecuted instantiation: vp9_ext_ratectrl.c:weighted_prob Unexecuted instantiation: vp9_temporal_filter.c:weighted_prob Unexecuted instantiation: vp9_tpl_model.c:weighted_prob Unexecuted instantiation: vp9_mbgraph.c:weighted_prob Unexecuted instantiation: temporal_filter_sse4.c:weighted_prob Unexecuted instantiation: vp9_quantize_sse2.c:weighted_prob Unexecuted instantiation: vp9_quantize_ssse3.c:weighted_prob Unexecuted instantiation: vp9_quantize_avx2.c:weighted_prob Unexecuted instantiation: highbd_temporal_filter_sse4.c:weighted_prob Unexecuted instantiation: vp9_decodemv.c:weighted_prob Unexecuted instantiation: quantize.c:weighted_prob Unexecuted instantiation: quantize_sse2.c:weighted_prob Unexecuted instantiation: quantize_ssse3.c:weighted_prob Unexecuted instantiation: quantize_avx.c:weighted_prob Unexecuted instantiation: quantize_avx2.c:weighted_prob Unexecuted instantiation: highbd_quantize_intrin_sse2.c:weighted_prob Unexecuted instantiation: highbd_quantize_intrin_avx2.c:weighted_prob Unexecuted instantiation: vp9_cx_iface.c:weighted_prob Unexecuted instantiation: vp9_bitstream.c:weighted_prob Unexecuted instantiation: vp9_context_tree.c:weighted_prob Unexecuted instantiation: vp9_cost.c:weighted_prob Unexecuted instantiation: vp9_dct.c:weighted_prob Unexecuted instantiation: vp9_encodeframe.c:weighted_prob Unexecuted instantiation: vp9_encodemb.c:weighted_prob Unexecuted instantiation: vp9_encodemv.c:weighted_prob Unexecuted instantiation: vp9_ethread.c:weighted_prob Unexecuted instantiation: vp9_firstpass.c:weighted_prob Unexecuted instantiation: vp9_lookahead.c:weighted_prob Unexecuted instantiation: vp9_multi_thread.c:weighted_prob Unexecuted instantiation: vp9_mcomp.c:weighted_prob Unexecuted instantiation: vp9_rdopt.c:weighted_prob Unexecuted instantiation: vp9_pickmode.c:weighted_prob Unexecuted instantiation: vp9_subexp.c:weighted_prob Unexecuted instantiation: vp9_treewriter.c:weighted_prob Unexecuted instantiation: bitwriter.c:weighted_prob Unexecuted instantiation: vp9_mvref_common.c:weighted_prob |
68 | | |
69 | | static INLINE vpx_prob merge_probs(vpx_prob pre_prob, const unsigned int ct[2], |
70 | | unsigned int count_sat, |
71 | 96.3M | unsigned int max_update_factor) { |
72 | 96.3M | const vpx_prob prob = get_binary_prob(ct[0], ct[1]); |
73 | 96.3M | const unsigned int count = VPXMIN(ct[0] + ct[1], count_sat); |
74 | 96.3M | const unsigned int factor = max_update_factor * count / count_sat; |
75 | 96.3M | return weighted_prob(pre_prob, prob, factor); |
76 | 96.3M | } Unexecuted instantiation: vp9_dx_iface.c:merge_probs Unexecuted instantiation: vp9_decodeframe.c:merge_probs Unexecuted instantiation: vp9_detokenize.c:merge_probs Unexecuted instantiation: vp9_decoder.c:merge_probs Unexecuted instantiation: vp9_dsubexp.c:merge_probs Unexecuted instantiation: yv12config.c:merge_probs Unexecuted instantiation: prob.c:merge_probs Unexecuted instantiation: bitreader.c:merge_probs Unexecuted instantiation: vp9_alloccommon.c:merge_probs Unexecuted instantiation: vp9_blockd.c:merge_probs vp9_entropy.c:merge_probs Line | Count | Source | 71 | 96.3M | unsigned int max_update_factor) { | 72 | 96.3M | const vpx_prob prob = get_binary_prob(ct[0], ct[1]); | 73 | 96.3M | const unsigned int count = VPXMIN(ct[0] + ct[1], count_sat); | 74 | 96.3M | const unsigned int factor = max_update_factor * count / count_sat; | 75 | 96.3M | return weighted_prob(pre_prob, prob, factor); | 76 | 96.3M | } |
Unexecuted instantiation: vp9_entropymode.c:merge_probs Unexecuted instantiation: vp9_entropymv.c:merge_probs Unexecuted instantiation: vp9_idct.c:merge_probs Unexecuted instantiation: vp9_pred_common.c:merge_probs Unexecuted instantiation: vp9_seg_common.c:merge_probs Unexecuted instantiation: vp9_tile_common.c:merge_probs Unexecuted instantiation: vp9_loopfilter.c:merge_probs Unexecuted instantiation: vp9_thread_common.c:merge_probs Unexecuted instantiation: vp9_quant_common.c:merge_probs Unexecuted instantiation: vp9_reconinter.c:merge_probs Unexecuted instantiation: vp9_reconintra.c:merge_probs Unexecuted instantiation: vp9_scan.c:merge_probs Unexecuted instantiation: vp9_frame_scale.c:merge_probs Unexecuted instantiation: vp9_encoder.c:merge_probs Unexecuted instantiation: vp9_picklpf.c:merge_probs Unexecuted instantiation: vp9_quantize.c:merge_probs Unexecuted instantiation: vp9_ratectrl.c:merge_probs Unexecuted instantiation: vp9_rd.c:merge_probs Unexecuted instantiation: vp9_segmentation.c:merge_probs Unexecuted instantiation: vp9_speed_features.c:merge_probs Unexecuted instantiation: vp9_svc_layercontext.c:merge_probs Unexecuted instantiation: vp9_tokenize.c:merge_probs Unexecuted instantiation: vp9_aq_variance.c:merge_probs Unexecuted instantiation: vp9_aq_360.c:merge_probs Unexecuted instantiation: vp9_aq_cyclicrefresh.c:merge_probs Unexecuted instantiation: vp9_aq_complexity.c:merge_probs Unexecuted instantiation: vp9_alt_ref_aq.c:merge_probs Unexecuted instantiation: vp9_skin_detection.c:merge_probs Unexecuted instantiation: vp9_noise_estimate.c:merge_probs Unexecuted instantiation: vp9_ext_ratectrl.c:merge_probs Unexecuted instantiation: vp9_temporal_filter.c:merge_probs Unexecuted instantiation: vp9_tpl_model.c:merge_probs Unexecuted instantiation: vp9_mbgraph.c:merge_probs Unexecuted instantiation: temporal_filter_sse4.c:merge_probs Unexecuted instantiation: vp9_quantize_sse2.c:merge_probs Unexecuted instantiation: vp9_quantize_ssse3.c:merge_probs Unexecuted instantiation: vp9_quantize_avx2.c:merge_probs Unexecuted instantiation: highbd_temporal_filter_sse4.c:merge_probs Unexecuted instantiation: vp9_decodemv.c:merge_probs Unexecuted instantiation: quantize.c:merge_probs Unexecuted instantiation: quantize_sse2.c:merge_probs Unexecuted instantiation: quantize_ssse3.c:merge_probs Unexecuted instantiation: quantize_avx.c:merge_probs Unexecuted instantiation: quantize_avx2.c:merge_probs Unexecuted instantiation: highbd_quantize_intrin_sse2.c:merge_probs Unexecuted instantiation: highbd_quantize_intrin_avx2.c:merge_probs Unexecuted instantiation: vp9_cx_iface.c:merge_probs Unexecuted instantiation: vp9_bitstream.c:merge_probs Unexecuted instantiation: vp9_context_tree.c:merge_probs Unexecuted instantiation: vp9_cost.c:merge_probs Unexecuted instantiation: vp9_dct.c:merge_probs Unexecuted instantiation: vp9_encodeframe.c:merge_probs Unexecuted instantiation: vp9_encodemb.c:merge_probs Unexecuted instantiation: vp9_encodemv.c:merge_probs Unexecuted instantiation: vp9_ethread.c:merge_probs Unexecuted instantiation: vp9_firstpass.c:merge_probs Unexecuted instantiation: vp9_lookahead.c:merge_probs Unexecuted instantiation: vp9_multi_thread.c:merge_probs Unexecuted instantiation: vp9_mcomp.c:merge_probs Unexecuted instantiation: vp9_rdopt.c:merge_probs Unexecuted instantiation: vp9_pickmode.c:merge_probs Unexecuted instantiation: vp9_subexp.c:merge_probs Unexecuted instantiation: vp9_treewriter.c:merge_probs Unexecuted instantiation: bitwriter.c:merge_probs Unexecuted instantiation: vp9_mvref_common.c:merge_probs |
77 | | |
78 | | // MODE_MV_MAX_UPDATE_FACTOR (128) * count / MODE_MV_COUNT_SAT; |
79 | | static const int count_to_update_factor[MODE_MV_COUNT_SAT + 1] = { |
80 | | 0, 6, 12, 19, 25, 32, 38, 44, 51, 57, 64, |
81 | | 70, 76, 83, 89, 96, 102, 108, 115, 121, 128 |
82 | | }; |
83 | | |
84 | | static INLINE vpx_prob mode_mv_merge_probs(vpx_prob pre_prob, |
85 | 15.0M | const unsigned int ct[2]) { |
86 | 15.0M | const unsigned int den = ct[0] + ct[1]; |
87 | 15.0M | if (den == 0) { |
88 | 12.6M | return pre_prob; |
89 | 12.6M | } else { |
90 | 2.35M | const unsigned int count = VPXMIN(den, MODE_MV_COUNT_SAT); |
91 | 2.35M | const unsigned int factor = count_to_update_factor[count]; |
92 | 2.35M | const vpx_prob prob = get_prob(ct[0], den); |
93 | 2.35M | return weighted_prob(pre_prob, prob, factor); |
94 | 2.35M | } |
95 | 15.0M | } Unexecuted instantiation: vp9_dx_iface.c:mode_mv_merge_probs Unexecuted instantiation: vp9_decodeframe.c:mode_mv_merge_probs Unexecuted instantiation: vp9_detokenize.c:mode_mv_merge_probs Unexecuted instantiation: vp9_decoder.c:mode_mv_merge_probs Unexecuted instantiation: vp9_dsubexp.c:mode_mv_merge_probs Unexecuted instantiation: yv12config.c:mode_mv_merge_probs prob.c:mode_mv_merge_probs Line | Count | Source | 85 | 12.4M | const unsigned int ct[2]) { | 86 | 12.4M | const unsigned int den = ct[0] + ct[1]; | 87 | 12.4M | if (den == 0) { | 88 | 10.5M | return pre_prob; | 89 | 10.5M | } else { | 90 | 1.84M | const unsigned int count = VPXMIN(den, MODE_MV_COUNT_SAT); | 91 | 1.84M | const unsigned int factor = count_to_update_factor[count]; | 92 | 1.84M | const vpx_prob prob = get_prob(ct[0], den); | 93 | 1.84M | return weighted_prob(pre_prob, prob, factor); | 94 | 1.84M | } | 95 | 12.4M | } |
Unexecuted instantiation: bitreader.c:mode_mv_merge_probs Unexecuted instantiation: vp9_alloccommon.c:mode_mv_merge_probs Unexecuted instantiation: vp9_blockd.c:mode_mv_merge_probs Unexecuted instantiation: vp9_entropy.c:mode_mv_merge_probs vp9_entropymode.c:mode_mv_merge_probs Line | Count | Source | 85 | 1.43M | const unsigned int ct[2]) { | 86 | 1.43M | const unsigned int den = ct[0] + ct[1]; | 87 | 1.43M | if (den == 0) { | 88 | 1.10M | return pre_prob; | 89 | 1.10M | } else { | 90 | 335k | const unsigned int count = VPXMIN(den, MODE_MV_COUNT_SAT); | 91 | 335k | const unsigned int factor = count_to_update_factor[count]; | 92 | 335k | const vpx_prob prob = get_prob(ct[0], den); | 93 | 335k | return weighted_prob(pre_prob, prob, factor); | 94 | 335k | } | 95 | 1.43M | } |
vp9_entropymv.c:mode_mv_merge_probs Line | Count | Source | 85 | 1.20M | const unsigned int ct[2]) { | 86 | 1.20M | const unsigned int den = ct[0] + ct[1]; | 87 | 1.20M | if (den == 0) { | 88 | 1.02M | return pre_prob; | 89 | 1.02M | } else { | 90 | 173k | const unsigned int count = VPXMIN(den, MODE_MV_COUNT_SAT); | 91 | 173k | const unsigned int factor = count_to_update_factor[count]; | 92 | 173k | const vpx_prob prob = get_prob(ct[0], den); | 93 | 173k | return weighted_prob(pre_prob, prob, factor); | 94 | 173k | } | 95 | 1.20M | } |
Unexecuted instantiation: vp9_idct.c:mode_mv_merge_probs Unexecuted instantiation: vp9_pred_common.c:mode_mv_merge_probs Unexecuted instantiation: vp9_seg_common.c:mode_mv_merge_probs Unexecuted instantiation: vp9_tile_common.c:mode_mv_merge_probs Unexecuted instantiation: vp9_loopfilter.c:mode_mv_merge_probs Unexecuted instantiation: vp9_thread_common.c:mode_mv_merge_probs Unexecuted instantiation: vp9_quant_common.c:mode_mv_merge_probs Unexecuted instantiation: vp9_reconinter.c:mode_mv_merge_probs Unexecuted instantiation: vp9_reconintra.c:mode_mv_merge_probs Unexecuted instantiation: vp9_scan.c:mode_mv_merge_probs Unexecuted instantiation: vp9_frame_scale.c:mode_mv_merge_probs Unexecuted instantiation: vp9_encoder.c:mode_mv_merge_probs Unexecuted instantiation: vp9_picklpf.c:mode_mv_merge_probs Unexecuted instantiation: vp9_quantize.c:mode_mv_merge_probs Unexecuted instantiation: vp9_ratectrl.c:mode_mv_merge_probs Unexecuted instantiation: vp9_rd.c:mode_mv_merge_probs Unexecuted instantiation: vp9_segmentation.c:mode_mv_merge_probs Unexecuted instantiation: vp9_speed_features.c:mode_mv_merge_probs Unexecuted instantiation: vp9_svc_layercontext.c:mode_mv_merge_probs Unexecuted instantiation: vp9_tokenize.c:mode_mv_merge_probs Unexecuted instantiation: vp9_aq_variance.c:mode_mv_merge_probs Unexecuted instantiation: vp9_aq_360.c:mode_mv_merge_probs Unexecuted instantiation: vp9_aq_cyclicrefresh.c:mode_mv_merge_probs Unexecuted instantiation: vp9_aq_complexity.c:mode_mv_merge_probs Unexecuted instantiation: vp9_alt_ref_aq.c:mode_mv_merge_probs Unexecuted instantiation: vp9_skin_detection.c:mode_mv_merge_probs Unexecuted instantiation: vp9_noise_estimate.c:mode_mv_merge_probs Unexecuted instantiation: vp9_ext_ratectrl.c:mode_mv_merge_probs Unexecuted instantiation: vp9_temporal_filter.c:mode_mv_merge_probs Unexecuted instantiation: vp9_tpl_model.c:mode_mv_merge_probs Unexecuted instantiation: vp9_mbgraph.c:mode_mv_merge_probs Unexecuted instantiation: temporal_filter_sse4.c:mode_mv_merge_probs Unexecuted instantiation: vp9_quantize_sse2.c:mode_mv_merge_probs Unexecuted instantiation: vp9_quantize_ssse3.c:mode_mv_merge_probs Unexecuted instantiation: vp9_quantize_avx2.c:mode_mv_merge_probs Unexecuted instantiation: highbd_temporal_filter_sse4.c:mode_mv_merge_probs Unexecuted instantiation: vp9_decodemv.c:mode_mv_merge_probs Unexecuted instantiation: quantize.c:mode_mv_merge_probs Unexecuted instantiation: quantize_sse2.c:mode_mv_merge_probs Unexecuted instantiation: quantize_ssse3.c:mode_mv_merge_probs Unexecuted instantiation: quantize_avx.c:mode_mv_merge_probs Unexecuted instantiation: quantize_avx2.c:mode_mv_merge_probs Unexecuted instantiation: highbd_quantize_intrin_sse2.c:mode_mv_merge_probs Unexecuted instantiation: highbd_quantize_intrin_avx2.c:mode_mv_merge_probs Unexecuted instantiation: vp9_cx_iface.c:mode_mv_merge_probs Unexecuted instantiation: vp9_bitstream.c:mode_mv_merge_probs Unexecuted instantiation: vp9_context_tree.c:mode_mv_merge_probs Unexecuted instantiation: vp9_cost.c:mode_mv_merge_probs Unexecuted instantiation: vp9_dct.c:mode_mv_merge_probs Unexecuted instantiation: vp9_encodeframe.c:mode_mv_merge_probs Unexecuted instantiation: vp9_encodemb.c:mode_mv_merge_probs Unexecuted instantiation: vp9_encodemv.c:mode_mv_merge_probs Unexecuted instantiation: vp9_ethread.c:mode_mv_merge_probs Unexecuted instantiation: vp9_firstpass.c:mode_mv_merge_probs Unexecuted instantiation: vp9_lookahead.c:mode_mv_merge_probs Unexecuted instantiation: vp9_multi_thread.c:mode_mv_merge_probs Unexecuted instantiation: vp9_mcomp.c:mode_mv_merge_probs Unexecuted instantiation: vp9_rdopt.c:mode_mv_merge_probs Unexecuted instantiation: vp9_pickmode.c:mode_mv_merge_probs Unexecuted instantiation: vp9_subexp.c:mode_mv_merge_probs Unexecuted instantiation: vp9_treewriter.c:mode_mv_merge_probs Unexecuted instantiation: bitwriter.c:mode_mv_merge_probs Unexecuted instantiation: vp9_mvref_common.c:mode_mv_merge_probs |
96 | | |
97 | | void vpx_tree_merge_probs(const vpx_tree_index *tree, const vpx_prob *pre_probs, |
98 | | const unsigned int *counts, vpx_prob *probs); |
99 | | |
100 | | DECLARE_ALIGNED(16, extern const uint8_t, vpx_norm[256]); |
101 | | |
102 | | #ifdef __cplusplus |
103 | | } // extern "C" |
104 | | #endif |
105 | | |
106 | | #endif // VPX_VPX_DSP_PROB_H_ |