FFmpeg
Macros | Functions | Variables
mathops.h File Reference
#include <stdint.h>
#include "libavutil/common.h"
#include "libavutil/reverse.h"
#include "config.h"

Go to the source code of this file.

Macros

#define  MAX_NEG_CROP   1024
 
#define  MUL64(a, b)   ((int64_t)(a) * (int64_t)(b))
 
#define  MULL(a, b, s)   (MUL64(a, b) >> (s))
 
#define  MAC64(d, a, b)   ((d) += MUL64(a, b))
 
#define  MLS64(d, a, b)   ((d) -= MUL64(a, b))
 
#define  MAC16(rt, ra, rb)   rt += (ra) * (rb)
 
#define  MUL16(ra, rb)   ((ra) * (rb))
 
#define  MLS16(rt, ra, rb)   ((rt) -= (ra) * (rb))
 
#define  mid_pred   mid_pred
 
#define  median4   median4
 
#define  COPY3_IF_LT(x, y, a, b, c, d)
 
#define  MASK_ABS(mask, level)
 
#define  NEG_SSR32(a, s)   ((( int32_t)(a))>>(32-(s)))
 
#define  NEG_USR32(a, s)   (((uint32_t)(a))>>(32-(s)))
 
#define  PACK_2U8(a, b)   (((b) << 8) | (a))
 
#define  PACK_4U8(a, b, c, d)   (((d) << 24) | ((c) << 16) | ((b) << 8) | (a))
 
#define  PACK_2U16(a, b)   (((b) << 16) | (a))
 
#define  PACK_2S8(a, b)   PACK_2U8((a)&255, (b)&255)
 
#define  PACK_4S8(a, b, c, d)   PACK_4U8((a)&255, (b)&255, (c)&255, (d)&255)
 
#define  PACK_2S16(a, b)   PACK_2U16((a)&0xffff, (b)&0xffff)
 
#define  FASTDIV(a, b)   ((uint32_t)((((uint64_t)a) * ff_inverse[b]) >> 32))
 
#define  ff_sqrt   ff_sqrt
 

Functions

 
static av_always_inline unsigned  UMULH (unsigned a, unsigned b)
 
static av_const int  mid_pred (int a, int b, int c)
 
static av_const int  median4 (int a, int b, int c, int d)
 
static av_const int  sign_extend (int val, unsigned bits)
 
static av_const unsigned  zero_extend (unsigned val, unsigned bits)
 
static av_const unsigned int  ff_sqrt (unsigned int a)
 
static av_const float  ff_sqrf (float a)
 
static int8_t  ff_u8_to_s8 (uint8_t a)
 
static av_always_inline uint32_t  bitswap_32 (uint32_t x)
 

Variables

const uint32_t  ff_inverse [257]
 
const uint8_t  ff_sqrt_tab [256]
 
const uint8_t  ff_crop_tab [256+2 *MAX_NEG_CROP]
 
 
const uint8_t  ff_zigzag_scan [16+1]
 

Macro Definition Documentation

#define MAX_NEG_CROP   1024

Definition at line 31 of file mathops.h.

Referenced by ff_put_vp8_epel16_h4_mmi(), ff_put_vp8_epel16_h4v4_mmi(), ff_put_vp8_epel16_h4v6_mmi(), ff_put_vp8_epel16_h6_mmi(), ff_put_vp8_epel16_h6v4_mmi(), ff_put_vp8_epel16_h6v6_mmi(), ff_put_vp8_epel16_v4_mmi(), ff_put_vp8_epel16_v6_mmi(), ff_put_vp8_epel4_h4_mmi(), ff_put_vp8_epel4_h4v4_mmi(), ff_put_vp8_epel4_h4v6_mmi(), ff_put_vp8_epel4_h6_mmi(), ff_put_vp8_epel4_h6v4_mmi(), ff_put_vp8_epel4_h6v6_mmi(), ff_put_vp8_epel4_v4_mmi(), ff_put_vp8_epel4_v6_mmi(), ff_put_vp8_epel8_h4_mmi(), ff_put_vp8_epel8_h4v4_mmi(), ff_put_vp8_epel8_h4v6_mmi(), ff_put_vp8_epel8_h6_mmi(), ff_put_vp8_epel8_h6v4_mmi(), ff_put_vp8_epel8_h6v6_mmi(), ff_put_vp8_epel8_v4_mmi(), ff_put_vp8_epel8_v6_mmi(), filter_common(), filter_mbedge(), h_block_filter(), intra_pred_plane(), mp_yuv_to_rgb(), parse_ifo_palette(), parse_palette_segment(), pred16x16_tm_vp8_c(), pred4x4_tm_vp8_c(), pred8x8_tm_vp8_c(), rv30_weak_loop_filter(), rv40_weak_loop_filter(), v_block_filter(), vp8_filter_common_is4tap(), vp8_filter_common_isnot4tap(), wmv2_mspel8_h_lowpass(), wmv2_mspel8_v_lowpass(), and yuv_a_to_rgba().

#define MUL64 (   a,
  b 
)    ((int64_t)(a) * (int64_t)(b))

Definition at line 54 of file mathops.h.

Referenced by apply_filter(), aptx_bin_search(), aptx_invert_quantization(), aptx_prediction_filtering(), aptx_qmf_convolution(), aptx_quantize_difference(), calc_corr(), calc_prediction_gain(), decode_var_block_data(), l1_unscale(), MULH(), parcor_to_lpc(), and revert_channel_correlation().

#define MULL (   a,
  b,
  s 
)    (MUL64(a, b) >> (s))

Definition at line 58 of file mathops.h.

Referenced by long_term_filter(), lsp2poly(), and silk_is_lpc_stable().

#define MAC64 (   d,
  a,
  b 
)    ((d) += MUL64(a, b))

Definition at line 74 of file mathops.h.

Referenced by ac3_sum_square_butterfly_int32_c().

#define MLS64 (   d,
  a,
  b 
)    ((d) -= MUL64(a, b))

Definition at line 78 of file mathops.h.

#define MAC16 (   rt,
  ra,
  rb 
)    rt += (ra) * (rb)

Definition at line 83 of file mathops.h.

Referenced by g722_apply_qmf().

#define MUL16 (   ra,
  rb 
)    ((ra) * (rb))

Definition at line 88 of file mathops.h.

Referenced by apply_window_int16_c(), celt_cos(), ff_dot_product(), g722_apply_qmf(), pRNG(), and synth_frame().

#define MLS16 (   rt,
  ra,
  rb 
)    ((rt) -= (ra) * (rb))

Definition at line 92 of file mathops.h.

#define mid_pred   mid_pred

Definition at line 97 of file mathops.h.

Referenced by add_hfyu_median_pred_int16_c(), add_lag_median_prediction(), add_median_pred_c(), correlate(), correlate_slice_buffered(), decorrelate(), direct_search(), do_video_out(), encode_q_branch(), epic_decode_component_pred(), estimate_motion_b(), ff_estimate_p_frame_motion(), ff_h263_pred_motion(), ff_pre_estimate_p_frame_motion(), ff_vc1_pred_b_mv(), ff_vc1_pred_mv(), ff_vc1_pred_mv_intfr(), filter_frame(), get_chroma_mv(), get_cmy_scale(), get_luma_mv(), get_rgb_scale(), h263_mv4_search(), interlaced_search(), lag_pred_line_yuy2(), loco_predict(), ls_decode_line(), ls_encode_line(), magicyuv_median_pred16(), motion_search(), mv_pred_median(), mvi_predict(), pix_median_abs16_c(), pix_median_abs8_c(), pred_motion(), pred_mv(), pred_pskip_motion(), pred_spatial_direct_motion(), predict_TMPL(), restore_median_planar(), restore_median_planar_il(), rv34_pred_b_vector(), rv34_pred_mv(), rv34_pred_mv_rv3(), search_mv(), sub_hfyu_median_pred_int16_c(), sub_median_pred_c(), svq1_decode_motion_vector(), svq3_pred_motion(), and wmv2_pred_motion().

#define median4   median4

Definition at line 116 of file mathops.h.

Referenced by get_chroma_mv(), and get_luma_mv().

#define COPY3_IF_LT (   x,
  y,
  a,
  b,
  c,
  d 
)
Value:
if ((y) < (x)) {\
(x) = (y);\
(a) = (b);\
(c) = (d);\
}
b
const char * b
Definition: vf_curves.c:113
c
static double c[64]
Definition: vsrc_mptestsrc.c:87

Definition at line 146 of file mathops.h.

#define MASK_ABS (   mask,
  level 
)
Value:
do { \
mask = level >> 31; \
level = (level ^ mask) - mask; \
} while (0)
static const uint16_t mask[17]
Definition: lzw.c:38
uint8_t level
Definition: svq3.c:207

Definition at line 155 of file mathops.h.

Referenced by dnxhd_init_vlc(), and mpeg1_encode_block().

#define NEG_SSR32 (   a,
  s 
)    ((( int32_t)(a))>>(32-(s)))

Definition at line 162 of file mathops.h.

#define NEG_USR32 (   a,
  s 
)    (((uint32_t)(a))>>(32-(s)))

Definition at line 166 of file mathops.h.

Referenced by decode_block(), decode_block_progressive(), decode_vlc_codeword(), dnxhd_decode_dct_block(), dv_decode_ac(), and get_xbits().

#define PACK_2U8 (   a,
  b 
)    (((b) << 8) | (a))

Definition at line 181 of file mathops.h.

#define PACK_4U8 (   a,
  b,
  c,
  d 
)    (((d) << 24) | ((c) << 16) | ((b) << 8) | (a))

Definition at line 184 of file mathops.h.

Referenced by pred4x4_vertical_vp8_c().

#define PACK_2U16 (   a,
  b 
)    (((b) << 16) | (a))

Definition at line 187 of file mathops.h.

#define PACK_2S8 (   a,
  b 
)    PACK_2U8((a)&255, (b)&255)

Definition at line 192 of file mathops.h.

#define PACK_4S8 (   a,
  b,
  c,
  d 
)    PACK_4U8((a)&255, (b)&255, (c)&255, (d)&255)

Definition at line 195 of file mathops.h.

#define PACK_2S16 (   a,
  b 
)    PACK_2U16((a)&0xffff, (b)&0xffff)

Definition at line 198 of file mathops.h.

#define FASTDIV (   a,
  b 
)    ((uint32_t)((((uint64_t)a) * ff_inverse[b]) >> 32))

Definition at line 202 of file mathops.h.

Referenced by adapt_prob(), decode_blockcodes(), ff_mpeg4_pred_dc(), ff_msmpeg4_pred_dc(), ff_sqrt(), get_dc(), mpeg4_decode_block(), unpack_bitstream(), and vorbis_residue_decode_internal().

#define ff_sqrt   ff_sqrt

Definition at line 206 of file mathops.h.

Referenced by calc_cpl_coord(), dpcm_predict(), encode_q_branch(), ff_estimate_p_frame_motion(), ff_opus_parse_extradata(), ff_opus_rc_dec_uint_tri(), ff_t_sqrt(), fixed_sqrt(), get_visual_weight(), libopus_decode_init(), main(), and square_root().

Function Documentation

static av_always_inline int MULH ( int  a,
int  b 
)
static

Definition at line 62 of file mathops.h.

static av_always_inline unsigned UMULH ( unsigned  a,
unsigned  b 
)
static

Definition at line 68 of file mathops.h.

Referenced by pRNG().

static av_const int mid_pred ( int  a,
int  b,
int  c 
)
inlinestatic

Definition at line 98 of file mathops.h.

static av_const int median4 ( int  a,
int  b,
int  c,
int  d 
)
inlinestatic

Definition at line 117 of file mathops.h.

static av_const int sign_extend ( int  val,
unsigned  bits 
)
inlinestatic

Definition at line 130 of file mathops.h.

Referenced by adpcm_decode_frame(), alac_linear_predictor(), aptx_unpack_codeword(), aptxhd_unpack_codeword(), cinaudio_decode_frame(), decode_band_numwavs(), decode_block(), decode_channel_sf_idx(), decode_plane(), decode_qu_spectra(), decode_tones_amplitude(), decode_tones_frequency(), dpcm_decode_frame(), ebml_read_sint(), ff_h263_decode_motion(), ff_h263_encode_motion(), flic_decode_frame_15_16BPP(), flic_decode_frame_24BPP(), flic_decode_frame_8BPP(), generate_joint_tables(), get_sbits_long(), get_xbits_le(), libopus_decode_init(), lpc_prediction(), matroska_parse_block(), mpeg1_encode_motion(), mpeg_decode_motion(), on2avc_decode_pairs(), on2avc_decode_quads(), paf_audio_decode(), scale_coefs(), smka_decode_frame(), svq1_decode_motion_vector(), tscc2_decode_mb(), tta_decode_frame(), xa_decode(), and xan_wc3_decode_frame().

static av_const unsigned zero_extend ( unsigned  val,
unsigned  bits 
)
inlinestatic

Definition at line 139 of file mathops.h.

Referenced by get_xbits_le().

static av_const unsigned int ff_sqrt ( unsigned int  a )
inlinestatic

Definition at line 207 of file mathops.h.

static av_const float ff_sqrf ( float  a )
inlinestatic

Definition at line 228 of file mathops.h.

Referenced by search_for_quantizers_twoloop().

static int8_t ff_u8_to_s8 ( uint8_t  a )
inlinestatic

Definition at line 233 of file mathops.h.

Referenced by color_transform_delta().

static av_always_inline uint32_t bitswap_32 ( uint32_t  x )
static

Definition at line 243 of file mathops.h.

Referenced by build_table(), and reverse().

Variable Documentation

const uint32_t ff_inverse[257]

Definition at line 27 of file mathtables.c.

Referenced by dct_quantize_TMPL(), ff_msmpeg4_pred_dc(), and setup_classifs().

const uint8_t ff_sqrt_tab[256]

Definition at line 63 of file mathtables.c.

Referenced by ff_sqrt().

const uint8_t ff_crop_tab[256+2 *MAX_NEG_CROP]

Definition at line 77 of file mathtables.c.

const uint8_t ff_zigzag_direct[64]

Definition at line 98 of file mathtables.c.

Referenced by compute_quant_matrix(), decode_block(), decode_dct(), decode_gop_header(), decode_i_block(), decode_init(), decode_scaling_list(), decode_studio_vop_header(), dnxhd_decode_header(), dnxhd_init_qmat(), dv_init_enc_block(), dvvideo_decode_init(), encode_picture(), ff_cavs_init(), ff_mpv_idct_init(), ff_rtjpeg_init(), ff_vp56_init_context(), ff_write_quant_matrix(), fic_decode_block(), fill_quantization_matrices(), fill_scaling_lists(), hq_decode_block(), init_idct(), init_scan_tables(), jpg_decode_block(), jpg_init(), ljpeg_encode_init(), load_matrix(), mpeg_decode_picture_coding_extension(), mss4_decode_dct(), read_quant_matrix_ext(), speedhq_decode_init(), tgq_decode_init(), tqi_decode_init(), vaapi_mpeg2_start_frame(), vaapi_mpeg4_start_frame(), and vp3_decode_init().

const uint8_t ff_zigzag_scan[16+1]

Definition at line 109 of file mathtables.c.

Referenced by decode_mb_coeffs(), decode_scaling_list(), fill_scaling_lists(), init_scan_tables(), svq3_decode_block(), tscc2_decode_mb(), vp78_decode_init(), vp7_decode_frame_header(), and vp8_decode_block_coeffs_internal().


Generated on Sun May 13 2018 02:04:11 for FFmpeg by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /