FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
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(* 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(* vorbis_inverse_coupling )(float *mag, float *ang, int blocksize)
 
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)
 
float(* scalarproduct_float )(const float *v1, const float *v2, int len)
 Calculate the scalar product of two vectors of floats.
 
void(* butterflies_float )(float *av_restrict v1, float *av_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(* shrink [4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
 
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 209 of file dsputil.h.

Field Documentation

int DSPContext::dct_bits

Size of DCT coefficients.

Definition at line 213 of file dsputil.h.

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

void(* DSPContext::get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size)
void(* DSPContext::diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride)
void(* DSPContext::put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* DSPContext::put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* DSPContext::add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* DSPContext::add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size)
void(* DSPContext::add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size)

Definition at line 222 of file dsputil.h.

Referenced by hl_decode_mb(), hl_decode_mb_idct_luma(), and hl_decode_mb_predict_luma().

int(* DSPContext::sum_abs_dctelem)(DCTELEM *block)

Definition at line 223 of file dsputil.h.

Referenced by dct_sad8x8_c(), diff_planes(), and ff_dsputil_init().

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

translational global motion compensation.

Definition at line 227 of file dsputil.h.

Referenced by ff_dsputil_init(), ff_dsputil_init_align(), ff_dsputil_init_ppc(), and gmc1_motion().

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.

Definition at line 231 of file dsputil.h.

Referenced by dsputil_init_mmx(), dsputil_init_sse(), ff_dsputil_init(), and gmc_motion().

void(* DSPContext::clear_block)(DCTELEM *block)
void(* DSPContext::clear_blocks)(DCTELEM *blocks)
int(* DSPContext::pix_sum)(uint8_t *pix, int line_size)
int(* DSPContext::pix_norm1)(uint8_t *pix, int line_size)
me_cmp_func DSPContext::sad[6]
me_cmp_func DSPContext::sse[6]
me_cmp_func DSPContext::hadamard8_diff[6]

Definition at line 241 of file dsputil.h.

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

me_cmp_func DSPContext::dct_sad[6]

Definition at line 242 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::quant_psnr[6]

Definition at line 243 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::bit[6]

Definition at line 244 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::rd[6]

Definition at line 245 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::vsad[6]

Definition at line 246 of file dsputil.h.

Referenced by ff_dsputil_init(), and ff_set_cmp().

me_cmp_func DSPContext::vsse[6]

Definition at line 247 of file dsputil.h.

Referenced by ff_dsputil_init(), and ff_set_cmp().

me_cmp_func DSPContext::nsse[6]

Definition at line 248 of file dsputil.h.

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

me_cmp_func DSPContext::w53[6]

Definition at line 249 of file dsputil.h.

Referenced by ff_dsputil_init_dwt(), and ff_set_cmp().

me_cmp_func DSPContext::w97[6]

Definition at line 250 of file dsputil.h.

Referenced by ff_dsputil_init_dwt(), and ff_set_cmp().

me_cmp_func DSPContext::dct_max[6]

Definition at line 251 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::dct264_sad[6]

Definition at line 252 of file dsputil.h.

Referenced by ff_set_cmp().

me_cmp_func DSPContext::me_pre_cmp[6]

Definition at line 254 of file dsputil.h.

Referenced by epzs_motion_search_internal(), and ff_init_me().

me_cmp_func DSPContext::me_cmp[6]
me_cmp_func DSPContext::me_sub_cmp[6]
me_cmp_func DSPContext::mb_cmp[6]
me_cmp_func DSPContext::ildct_cmp[6]

Definition at line 258 of file dsputil.h.

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

me_cmp_func DSPContext::frame_skip_cmp[6]

Definition at line 259 of file dsputil.h.

Referenced by ff_MPV_encode_init(), and skip_check().

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

Definition at line 261 of file dsputil.h.

Referenced by encode_block(), ff_dsputil_init(), and ff_int_init_altivec().

op_pixels_func DSPContext::put_pixels_tab[4][4]

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
blockdestination where the result is stored
pixelssource
line_sizenumber of bytes in a horizontal line of block
hheight

Definition at line 274 of file dsputil.h.

Referenced by bink_decode_plane(), binkb_decode_plane(), check_bidir_mv(), copy_from(), decode(), dsputil_init_3dnow(), dsputil_init_mmxext(), 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_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(), and vc1_mc_4mv_luma().

op_pixels_func DSPContext::avg_pixels_tab[4][4]

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
blockdestination into which the result is averaged (a+b+1)>>1
pixelssource
line_sizenumber of bytes in a horizontal line of block
hheight

Definition at line 286 of file dsputil.h.

Referenced by check_bidir_mv(), dsputil_init_3dnow(), dsputil_init_mmxext(), 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().

op_pixels_func DSPContext::put_no_rnd_pixels_tab[4][4]

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
blockdestination where the result is stored
pixelssource
line_sizenumber of bytes in a horizontal line of block
hheight

Definition at line 298 of file dsputil.h.

Referenced by copy_cell(), dsputil_init_3dnow(), dsputil_init_mmxext(), 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_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().

op_pixels_func DSPContext::avg_no_rnd_pixels_tab[4][4]

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
blockdestination into which the result is averaged (a+b)>>1
pixelssource
line_sizenumber of bytes in a horizontal line of block
hheight

Definition at line 310 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().

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

Definition at line 312 of file dsputil.h.

Referenced by dsputil_init_mmx(), and render_slice().

tpel_mc_func DSPContext::put_tpel_pixels_tab[11]

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
blockdestination where the result is stored
pixelssource
line_sizenumber of bytes in a horizontal line of block
hheight

Definition at line 324 of file dsputil.h.

Referenced by ff_dsputil_init(), and svq3_mc_dir_part().

tpel_mc_func DSPContext::avg_tpel_pixels_tab[11]

Definition at line 325 of file dsputil.h.

Referenced by ff_dsputil_init(), and svq3_mc_dir_part().

qpel_mc_func DSPContext::put_qpel_pixels_tab[2][16]
qpel_mc_func DSPContext::avg_qpel_pixels_tab[2][16]
qpel_mc_func DSPContext::put_no_rnd_qpel_pixels_tab[2][16]

Definition at line 329 of file dsputil.h.

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

qpel_mc_func DSPContext::avg_no_rnd_qpel_pixels_tab[2][16]

Definition at line 330 of file dsputil.h.

qpel_mc_func DSPContext::put_mspel_pixels_tab[8]

Definition at line 331 of file dsputil.h.

Referenced by ff_dsputil_init(), ff_dsputil_init_align(), and ff_mspel_motion().

h264_chroma_mc_func DSPContext::put_h264_chroma_pixels_tab[3]
h264_chroma_mc_func DSPContext::avg_h264_chroma_pixels_tab[3]
qpel_mc_func DSPContext::put_h264_qpel_pixels_tab[4][16]
qpel_mc_func DSPContext::avg_h264_qpel_pixels_tab[4][16]
qpel_mc_func DSPContext::put_2tap_qpel_pixels_tab[4][16]

Definition at line 342 of file dsputil.h.

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

qpel_mc_func DSPContext::avg_2tap_qpel_pixels_tab[4][16]

Definition at line 343 of file dsputil.h.

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

me_cmp_func DSPContext::pix_abs[2][4]
void(* DSPContext::add_bytes)(uint8_t *dst, uint8_t *src, int w)
void(* DSPContext::diff_bytes)(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w)
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]

Definition at line 354 of file dsputil.h.

Referenced by encode_frame(), ff_dsputil_init(), and median_predict().

void(* DSPContext::add_hfyu_median_prediction)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)
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)

Definition at line 357 of file dsputil.h.

Referenced by decode_frame(), and ff_dsputil_init().

void(* DSPContext::bswap_buf)(uint32_t *dst, const uint32_t *src, int w)
void(* DSPContext::bswap16_buf)(uint16_t *dst, const uint16_t *src, int len)
void(* DSPContext::h263_v_loop_filter)(uint8_t *src, int stride, int qscale)

Definition at line 362 of file dsputil.h.

Referenced by dsputil_init_mmx(), ff_dsputil_init(), and ff_h263_loop_filter().

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

Definition at line 363 of file dsputil.h.

Referenced by dsputil_init_mmx(), ff_dsputil_init(), and ff_h263_loop_filter().

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

Definition at line 365 of file dsputil.h.

Referenced by ff_dsputil_init(), and ff_h261_loop_filter().

void(* DSPContext::vorbis_inverse_coupling)(float *mag, float *ang, int blocksize)
void(* DSPContext::vector_fmul_reverse)(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_window)(float *dst, const float *src0, const float *src1, const float *win, int len)
void(* DSPContext::vector_clipf)(float *dst, const float *src, float min, float max, int len)
float(* DSPContext::scalarproduct_float)(const float *v1, const float *v2, int len)

Calculate the scalar product of two vectors of floats.

Parameters
v1first vector, 16-byte aligned
v2second vector, 16-byte aligned
lenlength of vectors, multiple of 4

Definition at line 383 of file dsputil.h.

Referenced by decode_spectrum_and_dequant(), dsputil_init_sse(), ff_dsputil_init(), and ff_dsputil_init_neon().

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

Calculate the sum and difference of two vectors of floats.

Parameters
v1first input vector, sum output, 16-byte aligned
v2second input vector, difference output, 16-byte aligned
lenlength of vectors, multiple of 4

Definition at line 390 of file dsputil.h.

Referenced by apply_mid_side_stereo(), ff_dsputil_init(), ff_dsputil_init_neon(), imc_decode_frame(), imdct_output(), 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
dstoutput vector constraints: 16-byte aligned
src0first input vector constraints: 32-byte aligned
src1second input vector constraints: 32-byte aligned
lennumber of elements in the input constraints: multiple of 8

Definition at line 406 of file dsputil.h.

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

void(* DSPContext::fdct)(DCTELEM *block)
void(* DSPContext::fdct248)(DCTELEM *block)

Definition at line 411 of file dsputil.h.

Referenced by ff_dsputil_init(), and ff_dvvideo_init().

void(* DSPContext::idct)(DCTELEM *block)
void(* DSPContext::idct_put)(uint8_t *dest, int line_size, DCTELEM *block)
void(* DSPContext::idct_add)(uint8_t *dest, int line_size, DCTELEM *block)
uint8_t DSPContext::idct_permutation[64]

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 441 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_slice(), decode_vol_header(), decode_vop_header(), dnxhd_init_qmat(), dnxhd_init_vlc(), encode_picture(), ff_cavs_init(), 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_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(), tqi_decode_init(), vaapi_mpeg2_start_frame(), vaapi_mpeg4_start_frame(), vcr2_init_sequence(), and vp3_decode_init().

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

Definition at line 450 of file dsputil.h.

Referenced by dct_quantize_refine(), and ff_dsputil_init().

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

Definition at line 451 of file dsputil.h.

Referenced by dct_quantize_refine(), and ff_dsputil_init().

void(* DSPContext::draw_edges)(uint8_t *buf, int wrap, int width, int height, int w, int h, int sides)
void(* DSPContext::shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)

Definition at line 460 of file dsputil.h.

Referenced by estimate_best_b_count(), and ff_dsputil_init().

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

Calculate scalar product of two vectors.

Parameters
lenlength of vectors, should be multiple of 16

Definition at line 466 of file dsputil.h.

Referenced by decode_subframe(), decoder_init(), decorrelate(), dsputil_init_mmxext(), 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().

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
lenlength of vectors, should be multiple of 16

Definition at line 473 of file dsputil.h.

Referenced by do_apply_filter(), dsputil_init_mmxext(), dsputil_init_sse2(), dsputil_init_ssse3(), ff_dsputil_init(), ff_dsputil_init_neon(), and ff_int_init_altivec().

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
outputdestination array constraints: 16-byte aligned
inputsource array constraints: 16-byte aligned
windowwindow array constraints: 16-byte aligned, at least len/2 elements
lenfull window length constraints: multiple of ? greater than zero

Definition at line 486 of file dsputil.h.

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

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
dstdestination array constraints: 16-byte aligned
srcsource array constraints: 16-byte aligned
minminimum value constraints: must be in the range [-(1 << 24), 1 << 24]
maxmaximum value constraints: must be in the range [-(1 << 24), 1 << 24]
lennumber of elements in the array constraints: multiple of 32 greater than zero

Definition at line 502 of file dsputil.h.

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

op_fill_func DSPContext::fill_block_tab[2]

Definition at line 505 of file dsputil.h.

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


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