DSPContext Struct Reference

DSPContext. More...

#include <dsputil.h>


Data Fields

int dct_bits
 Size of DCT coefficients.
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(* 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(* emulated_edge_mc )(uint8_t *buf, const uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h)
 Motion estimation with emulated edge values.
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]
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]
me_cmp_func pix_abs [2][4]
void(* add_bytes )(uint8_t *dst, uint8_t *src, int w)
void(* diff_bytes )(uint8_t *dst, const uint8_t *src1, const 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(* bswap_buf )(uint32_t *dst, const uint32_t *src, int w)
void(* bswap16_buf )(uint16_t *dst, const uint16_t *src, int len)
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(* 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(* vector_fmul )(float *dst, const float *src0, const float *src1, 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, 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_fmac_scalar )(float *dst, const float *src, float mul, int len)
 Multiply a vector of floats by a scalar float and add to destination vector.
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(* butterflies_float_interleave )(float *dst, const float *src0, const float *src1, int len)
 Calculate the sum and difference of two vectors of floats and interleave results into a separate output vector of floats, with each sum positioned before the corresponding difference.
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, int h, int sides)
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(* 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 )(const int16_t *v1, const int16_t *v2, int len)
 Calculate scalar product of two vectors.
int32_t(* scalarproduct_and_madd_int16 )(int16_t *v1, const int16_t *v2, const int16_t *v3, int len, int mul)
 Calculate scalar product of v1 and v2, and v1[i] += v3[i] * mul.
void(* apply_window_int16 )(int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 Apply symmetric window in 16-bit fixed-point.
void(* vector_clip_int32 )(int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len)
 Clip each element in an array of int32_t to a given minimum and maximum value.
op_fill_func fill_block_tab [2]


Detailed Description

DSPContext.

Definition at line 222 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)

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

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 ff_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)

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::apply_window_int16)(int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)

Apply symmetric window in 16-bit fixed-point.

Parameters:
output destination array constraints: 16-byte aligned
input source array constraints: 16-byte aligned
window window array constraints: 16-byte aligned, at least len/2 elements
len full window length constraints: multiple of ? greater than zero

Referenced by apply_window(), dsputil_init_mmx2(), dsputil_init_sse2(), dsputil_init_ssse3(), ff_dsputil_init(), and ff_dsputil_init_neon().

Definition at line 371 of file dsputil.h.

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

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 338 of file dsputil.h.

Referenced by ff_dsputil_init_align(), ff_dsputil_init_alpha(), ff_dsputil_init_neon(), ff_dsputil_init_vis(), and vc1_interp_mc().

Definition at line 358 of file dsputil.h.

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 314 of file dsputil.h.

Referenced by check_bidir_mv(), dsputil_init_3dnow(), dsputil_init_mmx2(), dsputil_init_sse2(), encode_mb_internal(), ff_dsputil_init_align(), ff_dsputil_init_alpha(), ff_dsputil_init_altivec(), ff_dsputil_init_armv6(), ff_dsputil_init_neon(), ff_dsputil_init_vis(), ff_init_me(), MPV_decode_mb_internal(), MPV_motion_internal(), svq3_mc_dir_part(), and vc1_interp_mc().

Definition at line 353 of file dsputil.h.

Referenced by ff_dsputil_init(), and svq3_mc_dir_part().

Definition at line 272 of file dsputil.h.

Referenced by ff_set_cmp().

void(* DSPContext::bswap16_buf)(uint16_t *dst, const uint16_t *src, int len)

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(), compute_stereo(), ff_dsputil_init(), ff_dsputil_init_neon(), and wma_decode_block().

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

Calculate the sum and difference of two vectors of floats and interleave results into a separate output vector of floats, with each sum positioned before the corresponding difference.

Parameters:
dst output vector constraints: 16-byte aligned
src0 first input vector constraints: 32-byte aligned
src1 second input vector constraints: 32-byte aligned
len number of elements in the input constraints: multiple of 8

Referenced by dsputil_init_avx(), dsputil_init_sse(), ff_dsputil_init(), and imdct_output().

Definition at line 280 of file dsputil.h.

Referenced by ff_set_cmp().

Size of DCT coefficients.

Definition at line 226 of file dsputil.h.

Referenced by common_init(), decode_slice_header(), and ff_dsputil_init().

Definition at line 279 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 270 of file dsputil.h.

Referenced by ff_set_cmp().

void(* DSPContext::diff_bytes)(uint8_t *dst, const uint8_t *src1, const 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, int h, int sides)

void(* DSPContext::emulated_edge_mc)(uint8_t *buf, const uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h)

Motion estimation with emulated edge values.

Parameters:
buf pointer to destination buffer (unaligned)
src pointer to pixel source (unaligned)
linesize width (in pixels) for src/buf
block_w number of pixels (per row) to copy to buf
block_h nummber of pixel rows to copy to buf
src_x offset of src to start of row - this may be negative
src_y offset of src to top of image - this may be negative
w width of src in pixels
h height of src in pixels

Referenced by chroma_4mv_motion(), chroma_4mv_motion_lowres(), dsputil_init_mmx(), dsputil_init_sse(), encode_mb_internal(), ff_mspel_motion(), ff_snow_pred_block(), gmc1_motion(), hpel_motion(), hpel_motion_lowres(), mc_dir_part(), mpeg_motion_internal(), mpeg_motion_lowres(), MPV_motion_internal(), qpel_motion(), render_slice(), rv34_mc(), svq3_mc_dir_part(), vc1_interp_mc(), vc1_mc_1mv(), vc1_mc_4mv_chroma(), vc1_mc_4mv_chroma4(), vc1_mc_4mv_luma(), vp56_mc(), vp8_mc_chroma(), and vp8_mc_luma().

Referenced by ff_dsputil_init(), and ff_dvvideo_init().

Definition at line 576 of file dsputil.h.

Referenced by bink_decode_plane(), binkb_decode_plane(), decode8x8(), and ff_dsputil_init().

Definition at line 287 of file dsputil.h.

Referenced by ff_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)

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 ff_dsputil_init(), ff_dsputil_init_align(), ff_dsputil_init_ppc(), and gmc1_motion().

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)

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 -> reference dct -> reference idct -> x)
  • (x -> reference dct -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
  • (->decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx ->...)

Definition at line 499 of file dsputil.h.

Referenced by dct_quantize_bfin(), dct_quantize_refine(), dct_quantize_trellis_c(), decide_ac_pred(), decode_frame_header(), decode_init(), decode_pic(), decode_slice(), decode_vol_header(), decode_vop_header(), dnxhd_init_qmat(), dnxhd_init_vlc(), encode_picture(), ff_convert_matrix(), ff_dct_common_init(), ff_dct_quantize_c(), ff_dsputil_init(), ff_dvvideo_init(), ff_h263_pred_acdc(), ff_intrax8_common_init(), ff_mjpeg_decode_init(), ff_mpeg4_pred_ac(), ff_MPV_encode_init(), ff_msmpeg4_common_init(), ff_rtjpeg_decode_init(), ff_vp56_init(), ff_wmv2_common_init(), fill_quantization_matrices(), filter(), init_dequantizer(), load_matrix(), mimic_decode_init(), mpeg1_decode_sequence(), mpeg_decode_init(), mpeg_decode_picture_coding_extension(), MPV_decode_mb_internal(), restore_ac_coeffs(), tgq_decode_init(), tqi_decode_init(), vaapi_mpeg2_start_frame(), vaapi_mpeg4_start_frame(), vcr2_init_sequence(), and vp3_decode_init().

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

Definition at line 286 of file dsputil.h.

Referenced by encode_mb_internal(), ff_dvvideo_init(), and ff_MPV_encode_init().

Definition at line 282 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 276 of file dsputil.h.

Referenced by ff_dsputil_init(), ff_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 370 of file dsputil.h.

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

Definition at line 359 of file dsputil.h.

Referenced by ff_dsputil_init(), ff_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)

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 326 of file dsputil.h.

Referenced by copy_cell(), dsputil_init_3dnow(), dsputil_init_mmx2(), dsputil_init_sse2(), encode_mb_internal(), ff_dsputil_init_align(), ff_dsputil_init_alpha(), ff_dsputil_init_altivec(), ff_dsputil_init_arm(), ff_dsputil_init_armv6(), ff_dsputil_init_bfin(), ff_dsputil_init_mmi(), ff_dsputil_init_neon(), ff_dsputil_init_vis(), 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 357 of file dsputil.h.

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

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

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 302 of file dsputil.h.

Referenced by bink_decode_plane(), binkb_decode_plane(), check_bidir_mv(), copy_from(), decode(), dsputil_init_3dnow(), dsputil_init_mmx2(), dsputil_init_sse2(), encode_mb_internal(), encode_thread(), ff_dsputil_init_align(), ff_dsputil_init_alpha(), ff_dsputil_init_altivec(), ff_dsputil_init_arm(), ff_dsputil_init_armv6(), ff_dsputil_init_bfin(), ff_dsputil_init_mmi(), ff_dsputil_init_neon(), ff_dsputil_init_vis(), 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().

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 352 of file dsputil.h.

Referenced by ff_dsputil_init(), and svq3_mc_dir_part().

Definition at line 271 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 273 of file dsputil.h.

Referenced by ff_set_cmp().

int32_t(* DSPContext::scalarproduct_and_madd_int16)(int16_t *v1, const int16_t *v2, const 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_mmx2(), dsputil_init_sse2(), dsputil_init_ssse3(), ff_dsputil_init(), ff_dsputil_init_neon(), and ff_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_sse(), ff_dsputil_init(), and ff_dsputil_init_neon().

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

Calculate scalar product of two vectors.

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

Referenced by decoder_init(), dsputil_init_mmx2(), dsputil_init_sse2(), ff_acelp_decode_gain_code(), ff_dsputil_init(), ff_dsputil_init_neon(), ff_int_init_altivec(), get_tilt_comp(), and long_term_filter().

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 ff_dsputil_init(), and ff_dsputilenc_init_mmx().

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

void(* DSPContext::vector_clip_int32)(int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len)

Clip each element in an array of int32_t to a given minimum and maximum value.

Parameters:
dst destination array constraints: 16-byte aligned
src source array constraints: 16-byte aligned
min minimum value constraints: must in the the range [-(1<<24), 1<<24]
max maximum value constraints: must in the the range [-(1<<24), 1<<24]
len number of elements in the array constraints: multiple of 32 greater than zero

Referenced by clip_coefficients(), dsputil_init_mmx(), dsputil_init_sse2(), dsputil_init_sse4(), ff_dsputil_init(), and ff_dsputil_init_neon().

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

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

Multiply a vector of floats by a scalar float and add to destination vector.

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 dca_decode_frame(), ff_dsputil_init(), and ff_dsputil_init_neon().

void(* DSPContext::vector_fmul)(float *dst, const float *src0, const float *src1, 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 apply_intensity_stereo(), decode_block(), decode_spectrum_and_dequant(), decode_subframe(), ff_dsputil_init(), ff_dsputil_init_neon(), and inverse_channel_transform().

void(* DSPContext::vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, 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)

Definition at line 274 of file dsputil.h.

Referenced by ff_dsputil_init(), ff_dsputilenc_init_mmx(), and ff_set_cmp().

Definition at line 275 of file dsputil.h.

Referenced by ff_dsputil_init(), and ff_set_cmp().

Definition at line 277 of file dsputil.h.

Referenced by ff_dsputil_init_dwt(), and ff_set_cmp().

Definition at line 278 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:48:05 2012 for FFmpeg by  doxygen 1.5.8