DSPContext Struct Reference

DSPContext. More...

#include <dsputil.h>


Data Fields

void(* get_pixels )(DCTELEM *block, const uint8_t *pixels, int line_size)
void(* diff_pixels )(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride)
void(* put_pixels_clamped )(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* put_signed_pixels_clamped )(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* put_pixels_nonclamped )(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* add_pixels_clamped )(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* add_pixels8 )(uint8_t *pixels, DCTELEM *block, int line_size)
void(* add_pixels4 )(uint8_t *pixels, DCTELEM *block, int line_size)
int(* sum_abs_dctelem )(DCTELEM *block)
void(* gmc1 )(uint8_t *dst, uint8_t *src, int srcStride, int h, int x16, int y16, int rounder)
 translational global motion compensation.
void(* gmc )(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height)
 global motion compensation.
void(* clear_block )(DCTELEM *block)
void(* clear_blocks )(DCTELEM *blocks)
int(* pix_sum )(uint8_t *pix, int line_size)
int(* pix_norm1 )(uint8_t *pix, int line_size)
me_cmp_func sad [6]
me_cmp_func sse [6]
me_cmp_func hadamard8_diff [6]
me_cmp_func dct_sad [6]
me_cmp_func quant_psnr [6]
me_cmp_func bit [6]
me_cmp_func rd [6]
me_cmp_func vsad [6]
me_cmp_func vsse [6]
me_cmp_func nsse [6]
me_cmp_func w53 [6]
me_cmp_func w97 [6]
me_cmp_func dct_max [6]
me_cmp_func dct264_sad [6]
me_cmp_func me_pre_cmp [6]
me_cmp_func me_cmp [6]
me_cmp_func me_sub_cmp [6]
me_cmp_func mb_cmp [6]
me_cmp_func ildct_cmp [6]
me_cmp_func frame_skip_cmp [6]
int(* ssd_int8_vs_int16 )(const int8_t *pix1, const int16_t *pix2, int size)
op_pixels_func put_pixels_tab [4][4]
 Halfpel motion compensation with rounding (a+b+1)>>1.
op_pixels_func avg_pixels_tab [4][4]
 Halfpel motion compensation with rounding (a+b+1)>>1.
op_pixels_func put_no_rnd_pixels_tab [4][4]
 Halfpel motion compensation with no rounding (a+b)>>1.
op_pixels_func avg_no_rnd_pixels_tab [4][4]
 Halfpel motion compensation with no rounding (a+b)>>1.
void(* put_no_rnd_pixels_l2 [2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h)
tpel_mc_func put_tpel_pixels_tab [11]
 Thirdpel motion compensation with rounding (a+b+1)>>1.
tpel_mc_func avg_tpel_pixels_tab [11]
qpel_mc_func put_qpel_pixels_tab [2][16]
qpel_mc_func avg_qpel_pixels_tab [2][16]
qpel_mc_func put_no_rnd_qpel_pixels_tab [2][16]
qpel_mc_func avg_no_rnd_qpel_pixels_tab [2][16]
qpel_mc_func put_mspel_pixels_tab [8]
h264_chroma_mc_func put_h264_chroma_pixels_tab [3]
 h264 Chroma MC
h264_chroma_mc_func avg_h264_chroma_pixels_tab [3]
h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab [3]
h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab [3]
qpel_mc_func put_h264_qpel_pixels_tab [4][16]
qpel_mc_func avg_h264_qpel_pixels_tab [4][16]
qpel_mc_func put_2tap_qpel_pixels_tab [4][16]
qpel_mc_func avg_2tap_qpel_pixels_tab [4][16]
qpel_mc_func put_cavs_qpel_pixels_tab [2][16]
qpel_mc_func avg_cavs_qpel_pixels_tab [2][16]
void(* cavs_filter_lv )(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)
void(* cavs_filter_lh )(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)
void(* cavs_filter_cv )(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)
void(* cavs_filter_ch )(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)
void(* cavs_idct8_add )(uint8_t *dst, DCTELEM *block, int stride)
me_cmp_func pix_abs [2][4]
void(* add_bytes )(uint8_t *dst, uint8_t *src, int w)
void(* add_bytes_l2 )(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
void(* diff_bytes )(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
void(* sub_hfyu_median_prediction )(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top)
 subtract huffyuv's variant of median prediction note, this might read from src1[-1], src2[-1]
void(* add_hfyu_median_prediction )(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)
int(* add_hfyu_left_prediction )(uint8_t *dst, const uint8_t *src, int w, int left)
void(* add_hfyu_left_prediction_bgr32 )(uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue, int *alpha)
void(* add_png_paeth_prediction )(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp)
void(* bswap_buf )(uint32_t *dst, const uint32_t *src, int w)
void(* h263_v_loop_filter )(uint8_t *src, int stride, int qscale)
void(* h263_h_loop_filter )(uint8_t *src, int stride, int qscale)
void(* h261_loop_filter )(uint8_t *src, int stride)
void(* x8_v_loop_filter )(uint8_t *src, int stride, int qscale)
void(* x8_h_loop_filter )(uint8_t *src, int stride, int qscale)
void(* vp3_idct_dc_add )(uint8_t *dest, int line_size, const DCTELEM *block)
void(* vp3_v_loop_filter )(uint8_t *src, int stride, int *bounding_values)
void(* vp3_h_loop_filter )(uint8_t *src, int stride, int *bounding_values)
void(* vp6_filter_diag4 )(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights)
void(* vorbis_inverse_coupling )(float *mag, float *ang, int blocksize)
void(* ac3_downmix )(float(*samples)[256], float(*matrix)[2], int out_ch, int in_ch, int len)
void(* lpc_compute_autocorr )(const int32_t *data, int len, int lag, double *autoc)
void(* vector_fmul )(float *dst, const float *src, int len)
void(* vector_fmul_reverse )(float *dst, const float *src0, const float *src1, int len)
void(* vector_fmul_add )(float *dst, const float *src0, const float *src1, const float *src2, int len)
void(* vector_fmul_window )(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len)
void(* int32_to_float_fmul_scalar )(float *dst, const int *src, float mul, int len)
void(* vector_clipf )(float *dst, const float *src, float min, float max, int len)
void(* vector_fmul_scalar )(float *dst, const float *src, float mul, int len)
 Multiply a vector of floats by a scalar float.
void(* vector_fmul_sv_scalar [2])(float *dst, const float *src, const float **sv, float mul, int len)
 Multiply a vector of floats by concatenated short vectors of floats and by a scalar float.
void(* sv_fmul_scalar [2])(float *dst, const float **sv, float mul, int len)
 Multiply short vectors of floats by a scalar float, store concatenated result.
float(* scalarproduct_float )(const float *v1, const float *v2, int len)
 Calculate the scalar product of two vectors of floats.
void(* butterflies_float )(float *restrict v1, float *restrict v2, int len)
 Calculate the sum and difference of two vectors of floats.
void(* float_to_int16 )(int16_t *dst, const float *src, long len)
void(* float_to_int16_interleave )(int16_t *dst, const float **src, long len, int channels)
void(* fdct )(DCTELEM *block)
void(* fdct248 )(DCTELEM *block)
void(* idct )(DCTELEM *block)
void(* idct_put )(uint8_t *dest, int line_size, DCTELEM *block)
 block -> idct -> clip to unsigned 8 bit -> dest.
void(* idct_add )(uint8_t *dest, int line_size, DCTELEM *block)
 block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
uint8_t idct_permutation [64]
 idct input permutation.
int idct_permutation_type
int(* try_8x8basis )(int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale)
void(* add_8x8basis )(int16_t rem[64], int16_t basis[64], int scale)
void(* draw_edges )(uint8_t *buf, int wrap, int width, int height, int w)
void(* prefetch )(void *mem, int stride, int h)
void(* shrink [4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void(* mlp_filter_channel )(int32_t *state, const int32_t *coeff, int firorder, int iirorder, unsigned int filter_shift, int32_t mask, int blocksize, int32_t *sample_buffer)
void(* vc1_inv_trans_8x8 )(DCTELEM *b)
void(* vc1_inv_trans_8x4 )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_4x8 )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_4x4 )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_8x8_dc )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_8x4_dc )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_4x8_dc )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_inv_trans_4x4_dc )(uint8_t *dest, int line_size, DCTELEM *block)
void(* vc1_v_overlap )(uint8_t *src, int stride)
void(* vc1_h_overlap )(uint8_t *src, int stride)
void(* vc1_v_loop_filter4 )(uint8_t *src, int stride, int pq)
void(* vc1_h_loop_filter4 )(uint8_t *src, int stride, int pq)
void(* vc1_v_loop_filter8 )(uint8_t *src, int stride, int pq)
void(* vc1_h_loop_filter8 )(uint8_t *src, int stride, int pq)
void(* vc1_v_loop_filter16 )(uint8_t *src, int stride, int pq)
void(* vc1_h_loop_filter16 )(uint8_t *src, int stride, int pq)
op_pixels_func put_vc1_mspel_pixels_tab [16]
op_pixels_func avg_vc1_mspel_pixels_tab [16]
void(* x8_spatial_compensation [12])(uint8_t *src, uint8_t *dst, int linesize)
void(* x8_setup_spatial_compensation )(uint8_t *src, uint8_t *dst, int linesize, int *range, int *sum, int edges)
int32_t(* scalarproduct_int16 )(int16_t *v1, int16_t *v2, int len, int shift)
 Calculate scalar product of two vectors.
int32_t(* scalarproduct_and_madd_int16 )(int16_t *v1, int16_t *v2, int16_t *v3, int len, int mul)
 Calculate scalar product of v1 and v2, and v1[i] += v3[i] * mul.
qpel_mc_func put_rv30_tpel_pixels_tab [4][16]
qpel_mc_func avg_rv30_tpel_pixels_tab [4][16]
qpel_mc_func put_rv40_qpel_pixels_tab [4][16]
qpel_mc_func avg_rv40_qpel_pixels_tab [4][16]
h264_chroma_mc_func put_rv40_chroma_pixels_tab [3]
h264_chroma_mc_func avg_rv40_chroma_pixels_tab [3]
op_fill_func fill_block_tab [2]
void(* scale_block )(const uint8_t src[64], uint8_t *dst, int linesize)


Detailed Description

DSPContext.

Definition at line 207 of file dsputil.h.


Field Documentation

void(* DSPContext::ac3_downmix)(float(*samples)[256], float(*matrix)[2], int out_ch, int in_ch, int len)

void(* DSPContext::add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale)

void(* DSPContext::add_bytes)(uint8_t *dst, uint8_t *src, int w)

void(* DSPContext::add_bytes_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)

int(* DSPContext::add_hfyu_left_prediction)(uint8_t *dst, const uint8_t *src, int w, int left)

Referenced by dsputil_init(), and dsputil_init_mmx().

void(* DSPContext::add_hfyu_left_prediction_bgr32)(uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue, int *alpha)

Referenced by dsputil_init().

void(* DSPContext::add_hfyu_median_prediction)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)

Referenced by dsputil_init(), and dsputil_init_mmx().

void(* DSPContext::add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size)

void(* DSPContext::add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size)

void(* DSPContext::add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)

void(* DSPContext::add_png_paeth_prediction)(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp)

Definition at line 340 of file dsputil.h.

Referenced by decode_slice_header(), dsputil_init(), and ff_h263_decode_frame().

Definition at line 344 of file dsputil.h.

Referenced by ff_cavs_inter().

Definition at line 337 of file dsputil.h.

Referenced by decode_slice_header(), dsputil_init(), and ff_dsputil_init_neon().

Halfpel motion compensation with no rounding (a+b)>>1.

this is an array[2][4] of motion compensation functions for 2 horizontal blocksizes (8,16) and the 4 halfpel positions
*pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]

Parameters:
block destination into which the result is averaged (a+b)>>1
pixels source
line_size number of bytes in a horizontal line of block
h height

Definition at line 304 of file dsputil.h.

Referenced by dsputil_init_align(), dsputil_init_alpha(), dsputil_init_vis(), ff_dsputil_init_iwmmxt(), and vc1_interp_mc().

Definition at line 324 of file dsputil.h.

Definition at line 334 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_mmx(), and vc1_interp_mc().

Halfpel motion compensation with rounding (a+b+1)>>1.

This is an array[4][4] of motion compensation functions for 4 horizontal blocksizes (8,16) and the 4 halfpel positions
*pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]

Parameters:
block destination into which the result is averaged (a+b+1)>>1
pixels source
line_size number of bytes in a horizontal line of block
h height

Definition at line 280 of file dsputil.h.

Referenced by check_bidir_mv(), dsputil_init_align(), dsputil_init_alpha(), dsputil_init_altivec(), dsputil_init_mlib(), dsputil_init_mmx(), dsputil_init_vis(), encode_mb_internal(), ff_dsputil_init_armv6(), ff_dsputil_init_iwmmxt(), ff_dsputil_init_neon(), ff_init_me(), MPV_decode_mb_internal(), MPV_motion_internal(), svq3_mc_dir_part(), and vc1_interp_mc().

Definition at line 558 of file dsputil.h.

Referenced by rv34_mc_2mv(), and rv34_mc_2mv_skip().

Definition at line 564 of file dsputil.h.

Referenced by dsputil_init_mmx(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

Definition at line 562 of file dsputil.h.

Referenced by dsputil_init(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

Definition at line 319 of file dsputil.h.

Referenced by dsputil_init(), and svq3_mc_dir_part().

Definition at line 535 of file dsputil.h.

Referenced by ff_vc1dsp_init_mmx(), and vc1_interp_mc().

Definition at line 238 of file dsputil.h.

Referenced by ff_set_cmp().

void(* DSPContext::bswap_buf)(uint32_t *dst, const uint32_t *src, int w)

void(* DSPContext::butterflies_float)(float *restrict v1, float *restrict v2, int len)

Calculate the sum and difference of two vectors of floats.

Parameters:
v1 first input vector, sum output, 16-byte aligned
v2 second input vector, difference output, 16-byte aligned
len length of vectors, multiple of 4

Referenced by apply_mid_side_stereo(), dsputil_init(), ff_dsputil_init_neon(), and wma_decode_block().

void(* DSPContext::cavs_filter_ch)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)

Referenced by ff_cavs_filter().

void(* DSPContext::cavs_filter_cv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)

Referenced by ff_cavs_filter().

void(* DSPContext::cavs_filter_lh)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)

Referenced by ff_cavs_filter().

void(* DSPContext::cavs_filter_lv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2)

Referenced by ff_cavs_filter().

void(* DSPContext::cavs_idct8_add)(uint8_t *dst, DCTELEM *block, int stride)

Definition at line 246 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 245 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 236 of file dsputil.h.

Referenced by ff_set_cmp().

void(* DSPContext::diff_bytes)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)

void(* DSPContext::diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride)

void(* DSPContext::draw_edges)(uint8_t *buf, int wrap, int width, int height, int w)

Referenced by dsputil_init(), and dvvideo_init().

Definition at line 567 of file dsputil.h.

Referenced by bink_decode_plane(), and dsputil_init().

void(* DSPContext::float_to_int16)(int16_t *dst, const float *src, long len)

void(* DSPContext::float_to_int16_interleave)(int16_t *dst, const float **src, long len, int channels)

Definition at line 253 of file dsputil.h.

Referenced by MPV_encode_init(), and skip_check().

void(* DSPContext::get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size)

void(* DSPContext::gmc)(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height)

global motion compensation.

Referenced by dsputil_init(), dsputil_init_align(), dsputil_init_mmx(), and gmc_motion().

void(* DSPContext::gmc1)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x16, int y16, int rounder)

translational global motion compensation.

Referenced by dsputil_init(), dsputil_init_align(), dsputil_init_ppc(), and gmc1_motion().

void(* DSPContext::h261_loop_filter)(uint8_t *src, int stride)

void(* DSPContext::h263_h_loop_filter)(uint8_t *src, int stride, int qscale)

void(* DSPContext::h263_v_loop_filter)(uint8_t *src, int stride, int qscale)

Definition at line 235 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_altivec(), dsputilenc_init_mmx(), and ff_set_cmp().

void(* DSPContext::idct_add)(uint8_t *dest, int line_size, DCTELEM *block)

idct input permutation.

several optimized IDCTs need a permutated input (relative to the normal order of the reference IDCT) this permutation must be performed before the idct_put/add, note, normally this can be merged with the zigzag/alternate scan
an example to avoid confusion:

  • (->decode coeffs -> zigzag reorder -> dequant -> reference idct ->...)
  • (x -> referece dct -> reference idct -> x)
  • (x -> referece dct -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
  • (->decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx ->...)

Definition at line 487 of file dsputil.h.

Referenced by common_init(), dct_quantize_altivec(), dct_quantize_bfin(), dct_quantize_c(), dct_quantize_refine(), dct_quantize_trellis_c(), decide_ac_pred(), decode_init(), decode_pic(), decode_vol_header(), decode_vop_header(), dnxhd_init_qmat(), dnxhd_init_vlc(), dsputil_init(), dvvideo_init(), encode_picture(), ff_convert_matrix(), ff_dct_common_init(), ff_intrax8_common_init(), ff_mjpeg_decode_init(), ff_wmv2_common_init(), h263_pred_acdc(), init_dequantizer(), load_matrix(), mimic_decode_init(), mpeg1_decode_sequence(), mpeg4_pred_ac(), mpeg_decode_init(), mpeg_decode_picture_coding_extension(), MPV_decode_mb_internal(), MPV_encode_init(), restore_ac_coeffs(), rtjpeg_decode_init(), tgq_decode_init(), tqi_decode_init(), vaapi_mpeg2_start_frame(), vaapi_mpeg4_start_frame(), vcr2_init_sequence(), vp3_decode_init(), and vp56_init().

void(* DSPContext::idct_put)(uint8_t *dest, int line_size, DCTELEM *block)

Definition at line 252 of file dsputil.h.

Referenced by dvvideo_init(), encode_mb_internal(), and MPV_encode_init().

void(* DSPContext::int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len)

void(* DSPContext::lpc_compute_autocorr)(const int32_t *data, int len, int lag, double *autoc)

Definition at line 248 of file dsputil.h.

Referenced by epzs_motion_search_internal(), and ff_init_me().

void(* DSPContext::mlp_filter_channel)(int32_t *state, const int32_t *coeff, int firorder, int iirorder, unsigned int filter_shift, int32_t mask, int blocksize, int32_t *sample_buffer)

Definition at line 242 of file dsputil.h.

Referenced by dsputil_init(), dsputilenc_init_mmx(), ff_set_cmp(), and sse_mb().

int(* DSPContext::pix_norm1)(uint8_t *pix, int line_size)

int(* DSPContext::pix_sum)(uint8_t *pix, int line_size)

void(* DSPContext::prefetch)(void *mem, int stride, int h)

Definition at line 339 of file dsputil.h.

Referenced by decode_slice_header(), dsputil_init(), and ff_h263_decode_frame().

Definition at line 343 of file dsputil.h.

Referenced by ff_cavs_inter().

Definition at line 336 of file dsputil.h.

Referenced by decode_slice_header(), dsputil_init(), and ff_dsputil_init_neon().

Definition at line 325 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_align(), and ff_mspel_motion().

void(* DSPContext::put_no_rnd_pixels_l2[2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h)

Referenced by dsputil_init(), render_slice(), and vp56_mc().

Halfpel motion compensation with no rounding (a+b)>>1.

this is an array[2][4] of motion compensation functions for 2 horizontal blocksizes (8,16) and the 4 halfpel positions
*pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]

Parameters:
block destination where the result is stored
pixels source
line_size number of bytes in a horizontal line of block
h height

Definition at line 292 of file dsputil.h.

Referenced by dsputil_init_align(), dsputil_init_alpha(), dsputil_init_altivec(), dsputil_init_arm(), dsputil_init_bfin(), dsputil_init_mlib(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_vis(), encode_mb_internal(), ff_dsputil_init_armv6(), ff_dsputil_init_iwmmxt(), ff_dsputil_init_neon(), ff_init_me(), gmc1_motion(), h263_mv4_search(), interlaced_search(), MPV_decode_mb_internal(), render_slice(), vc1_mc_1mv(), and vc1_mc_4mv_luma().

Definition at line 323 of file dsputil.h.

Referenced by encode_mb_internal(), ff_h263_decode_frame(), ff_init_me(), and h263_mv4_search().

Definition at line 333 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_mmx(), vc1_mc_1mv(), and vc1_mc_4mv_chroma().

void(* DSPContext::put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)

void(* DSPContext::put_pixels_nonclamped)(const DCTELEM *block, uint8_t *pixels, int line_size)

Referenced by bink_decode_plane(), and dsputil_init().

Halfpel motion compensation with rounding (a+b+1)>>1.

this is an array[4][4] of motion compensation functions for 4 horizontal blocksizes (8,16) and the 4 halfpel positions
*pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]

Parameters:
block destination where the result is stored
pixels source
line_size number of bytes in a horizontal line of block
h height

Definition at line 268 of file dsputil.h.

Referenced by bink_decode_plane(), check_bidir_mv(), copy_from(), decode(), dsputil_init_align(), dsputil_init_alpha(), dsputil_init_altivec(), dsputil_init_arm(), dsputil_init_bfin(), dsputil_init_mlib(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_vis(), encode_mb_internal(), encode_thread(), ff_dsputil_init_armv6(), ff_dsputil_init_iwmmxt(), ff_dsputil_init_neon(), ff_init_me(), gmc1_motion(), h263_mv4_search(), interlaced_search(), MPV_decode_mb_internal(), render_slice(), svq1_encode_plane(), svq1_motion_inter_4v_block(), svq1_motion_inter_block(), svq3_mc_dir_part(), vc1_mc_1mv(), vc1_mc_4mv_luma(), vp56_decode_mb(), and vp56_mc().

Definition at line 557 of file dsputil.h.

Referenced by rv34_mc_1mv(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

Definition at line 563 of file dsputil.h.

Referenced by dsputil_init_mmx(), rv34_mc_1mv(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

Definition at line 561 of file dsputil.h.

Referenced by dsputil_init(), rv34_mc_1mv(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

void(* DSPContext::put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)

Thirdpel motion compensation with rounding (a+b+1)>>1.

this is an array[12] of motion compensation functions for the 9 thirdpe positions
*pixels_tab[ xthirdpel + 4*ythirdpel ]

Parameters:
block destination where the result is stored
pixels source
line_size number of bytes in a horizontal line of block
h height

Definition at line 318 of file dsputil.h.

Referenced by dsputil_init(), and svq3_mc_dir_part().

Definition at line 534 of file dsputil.h.

Referenced by ff_vc1dsp_init_mmx(), vc1_mc_1mv(), and vc1_mc_4mv_luma().

Definition at line 237 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 239 of file dsputil.h.

Referenced by ff_set_cmp().

int32_t(* DSPContext::scalarproduct_and_madd_int16)(int16_t *v1, int16_t *v2, int16_t *v3, int len, int mul)

Calculate scalar product of v1 and v2, and v1[i] += v3[i] * mul.

Parameters:
len length of vectors, should be multiple of 16

Referenced by do_apply_filter(), dsputil_init(), dsputil_init_mmx(), ff_dsputil_init_neon(), and int_init_altivec().

float(* DSPContext::scalarproduct_float)(const float *v1, const float *v2, int len)

Calculate the scalar product of two vectors of floats.

Parameters:
v1 first vector, 16-byte aligned
v2 second vector, 16-byte aligned
len length of vectors, multiple of 4

Referenced by decode_spectrum_and_dequant(), dsputil_init(), dsputil_init_mmx(), and ff_dsputil_init_neon().

int32_t(* DSPContext::scalarproduct_int16)(int16_t *v1, int16_t *v2, int len, int shift)

Calculate scalar product of two vectors.

Parameters:
len length of vectors, should be multiple of 16
shift number of bits to discard from product

Referenced by dsputil_init(), dsputil_init_mmx(), ff_acelp_decode_gain_code(), ff_dsputil_init_neon(), and int_init_altivec().

void(* DSPContext::scale_block)(const uint8_t src[64], uint8_t *dst, int linesize)

Referenced by bink_decode_plane(), and dsputil_init().

void(* DSPContext::shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)

int(* DSPContext::ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2, int size)

void(* DSPContext::sub_hfyu_median_prediction)(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top)

subtract huffyuv's variant of median prediction note, this might read from src1[-1], src2[-1]

Referenced by dsputil_init(), and dsputilenc_init_mmx().

void(* DSPContext::sv_fmul_scalar[2])(float *dst, const float **sv, float mul, int len)

Multiply short vectors of floats by a scalar float, store concatenated result.

[0]: short vectors of length 2, 8-byte aligned [1]: short vectors of length 4, 16-byte aligned

Parameters:
dst output vector, 16-byte aligned
sv array of pointers to short vectors
mul scalar value
len number of output elements, multiple of 4

Referenced by dsputil_init(), and ff_dsputil_init_neon().

int(* DSPContext::try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale)

void(* DSPContext::vc1_h_loop_filter16)(uint8_t *src, int stride, int pq)

Referenced by vc1_loop_filter_iblk().

void(* DSPContext::vc1_h_loop_filter4)(uint8_t *src, int stride, int pq)

Referenced by vc1_decode_p_block().

void(* DSPContext::vc1_h_loop_filter8)(uint8_t *src, int stride, int pq)

void(* DSPContext::vc1_h_overlap)(uint8_t *src, int stride)

void(* DSPContext::vc1_inv_trans_4x4)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_4x4_dc)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_4x8)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_4x8_dc)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_8x4)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_8x4_dc)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_inv_trans_8x8_dc)(uint8_t *dest, int line_size, DCTELEM *block)

void(* DSPContext::vc1_v_loop_filter16)(uint8_t *src, int stride, int pq)

Referenced by vc1_loop_filter_iblk().

void(* DSPContext::vc1_v_loop_filter4)(uint8_t *src, int stride, int pq)

Referenced by vc1_decode_p_block().

void(* DSPContext::vc1_v_loop_filter8)(uint8_t *src, int stride, int pq)

void(* DSPContext::vc1_v_overlap)(uint8_t *src, int stride)

void(* DSPContext::vector_clipf)(float *dst, const float *src, float min, float max, int len)

void(* DSPContext::vector_fmul)(float *dst, const float *src, int len)

void(* DSPContext::vector_fmul_add)(float *dst, const float *src0, const float *src1, const float *src2, int len)

void(* DSPContext::vector_fmul_reverse)(float *dst, const float *src0, const float *src1, int len)

void(* DSPContext::vector_fmul_scalar)(float *dst, const float *src, float mul, int len)

Multiply a vector of floats by a scalar float.

Source and destination vectors must overlap exactly or not at all.

Parameters:
dst result vector, 16-byte aligned
src input vector, 16-byte aligned
mul scalar value
len length of vector, multiple of 4

Referenced by decode_block(), decode_spectrum_and_dequant(), decode_subframe(), dsputil_init(), ff_dsputil_init_neon(), inverse_channel_transform(), and sbr_qmf_analysis().

void(* DSPContext::vector_fmul_sv_scalar[2])(float *dst, const float *src, const float **sv, float mul, int len)

Multiply a vector of floats by concatenated short vectors of floats and by a scalar float.

Source and destination vectors must overlap exactly or not at all. [0]: short vectors of length 2, 8-byte aligned [1]: short vectors of length 4, 16-byte aligned

Parameters:
dst output vector, 16-byte aligned
src input vector, 16-byte aligned
sv array of pointers to short vectors
mul scalar value
len number of elements in src and dst, multiple of 4

Referenced by dsputil_init(), and ff_dsputil_init_neon().

void(* DSPContext::vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len)

void(* DSPContext::vorbis_inverse_coupling)(float *mag, float *ang, int blocksize)

void(* DSPContext::vp3_h_loop_filter)(uint8_t *src, int stride, int *bounding_values)

void(* DSPContext::vp3_idct_dc_add)(uint8_t *dest, int line_size, const DCTELEM *block)

void(* DSPContext::vp3_v_loop_filter)(uint8_t *src, int stride, int *bounding_values)

void(* DSPContext::vp6_filter_diag4)(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights)

Definition at line 240 of file dsputil.h.

Referenced by dsputil_init(), dsputilenc_init_mmx(), and ff_set_cmp().

Definition at line 241 of file dsputil.h.

Referenced by dsputil_init(), and ff_set_cmp().

Definition at line 243 of file dsputil.h.

Referenced by ff_dsputil_init_dwt(), and ff_set_cmp().

Definition at line 244 of file dsputil.h.

Referenced by ff_dsputil_init_dwt(), and ff_set_cmp().

void(* DSPContext::x8_h_loop_filter)(uint8_t *src, int stride, int qscale)

void(* DSPContext::x8_setup_spatial_compensation)(uint8_t *src, uint8_t *dst, int linesize, int *range, int *sum, int edges)

void(* DSPContext::x8_spatial_compensation[12])(uint8_t *src, uint8_t *dst, int linesize)

void(* DSPContext::x8_v_loop_filter)(uint8_t *src, int stride, int qscale)


The documentation for this struct was generated from the following file:

Generated on Fri Oct 26 02:36:57 2012 for FFmpeg by  doxygen 1.5.8