DSPContext Struct Reference

#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(* 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)
void(* gmc1 )(uint8_t *dst, uint8_t *src, int srcStride, int h, int x16, int y16, int rounder)
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)
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 [5]
me_cmp_func sse [5]
me_cmp_func hadamard8_diff [5]
me_cmp_func dct_sad [5]
me_cmp_func quant_psnr [5]
me_cmp_func bit [5]
me_cmp_func rd [5]
me_cmp_func vsad [5]
me_cmp_func vsse [5]
me_cmp_func nsse [5]
me_cmp_func w53 [5]
me_cmp_func w97 [5]
me_cmp_func dct_max [5]
me_cmp_func me_pre_cmp [5]
me_cmp_func me_cmp [5]
me_cmp_func me_sub_cmp [5]
me_cmp_func mb_cmp [5]
me_cmp_func ildct_cmp [5]
me_cmp_func frame_skip_cmp [5]
op_pixels_func put_pixels_tab [4][4]
op_pixels_func avg_pixels_tab [4][4]
op_pixels_func put_no_rnd_pixels_tab [4][4]
op_pixels_func avg_no_rnd_pixels_tab [4][4]
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]
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_func avg_h264_chroma_pixels_tab [3]
qpel_mc_func put_h264_qpel_pixels_tab [3][16]
qpel_mc_func avg_h264_qpel_pixels_tab [3][16]
h264_weight_func weight_h264_pixels_tab [10]
h264_biweight_func biweight_h264_pixels_tab [10]
me_cmp_func pix_abs [2][4]
void(* add_bytes )(uint8_t *dst, uint8_t *src, int w)
void(* diff_bytes )(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
void(* sub_hfyu_median_prediction )(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top)
void(* bswap_buf )(uint32_t *dst, uint32_t *src, int w)
void(* h264_v_loop_filter_luma )(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
void(* h264_h_loop_filter_luma )(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
void(* h264_v_loop_filter_chroma )(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
void(* h264_h_loop_filter_chroma )(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
void(* h264_v_loop_filter_chroma_intra )(uint8_t *pix, int stride, int alpha, int beta)
void(* h264_h_loop_filter_chroma_intra )(uint8_t *pix, int stride, int alpha, int beta)
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(* fdct )(DCTELEM *block)
void(* fdct248 )(DCTELEM *block)
void(* idct )(DCTELEM *block)
void(* idct_put )(uint8_t *dest, int line_size, DCTELEM *block)
void(* idct_add )(uint8_t *dest, int line_size, DCTELEM *block)
uint8_t idct_permutation [64]
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(* h264_idct_add )(uint8_t *dst, DCTELEM *block, int stride)
void(* h264_idct8_add )(uint8_t *dst, DCTELEM *block, int stride)


Detailed Description

DSPContext.

Definition at line 137 of file dsputil.h.


Field Documentation

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)

Referenced by dsputil_init(), and dsputil_init_mmx().

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)

Referenced by dsputil_init(), and hl_decode_mb().

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

Referenced by dsputil_init(), and hl_decode_mb().

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::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(), and gmc_motion().

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

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

Definition at line 162 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_mmx(), dsputil_init_ppc(), and ff_set_cmp().

Definition at line 163 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 164 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 165 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 166 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 167 of file dsputil.h.

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

Definition at line 168 of file dsputil.h.

Referenced by dsputil_init(), and ff_set_cmp().

Definition at line 169 of file dsputil.h.

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

Definition at line 170 of file dsputil.h.

Referenced by dsputil_init(), and ff_set_cmp().

Definition at line 171 of file dsputil.h.

Referenced by dsputil_init(), and ff_set_cmp().

Definition at line 172 of file dsputil.h.

Referenced by ff_set_cmp().

Definition at line 174 of file dsputil.h.

Referenced by epzs_motion_search_internal(), and ff_init_me().

Definition at line 178 of file dsputil.h.

Definition at line 179 of file dsputil.h.

Halfpel motion compensation with rounding (a+b+1)>>1. this is an array[4][4] of motion compensation funcions 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 191 of file dsputil.h.

Referenced by check_bidir_mv(), dsputil_init_align(), dsputil_init_alpha(), dsputil_init_armv4l(), dsputil_init_iwmmxt(), dsputil_init_mlib(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_ppc(), ff_init_me(), gmc1_motion(), h263_mv4_search(), interlaced_search(), MPV_decode_mb_internal(), render_fragments(), render_slice(), svq1_motion_inter_4v_block(), svq1_motion_inter_block(), and svq3_mc_dir_part().

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

Referenced by check_bidir_mv(), dsputil_init_align(), dsputil_init_alpha(), dsputil_init_iwmmxt(), dsputil_init_mlib(), dsputil_init_mmx(), dsputil_init_ppc(), ff_init_me(), MPV_decode_mb_internal(), MPV_motion(), and svq3_mc_dir_part().

Halfpel motion compensation with no rounding (a+b)>>1. this is an array[2][4] of motion compensation funcions 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 215 of file dsputil.h.

Referenced by dsputil_init_align(), dsputil_init_alpha(), dsputil_init_armv4l(), dsputil_init_iwmmxt(), dsputil_init_mlib(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_ppc(), ff_init_me(), gmc1_motion(), h263_mv4_search(), interlaced_search(), MPV_decode_mb_internal(), render_fragments(), and render_slice().

Halfpel motion compensation with no rounding (a+b)>>1. this is an array[2][4] of motion compensation funcions 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 227 of file dsputil.h.

Referenced by dsputil_init_align(), dsputil_init_alpha(), dsputil_init_iwmmxt(), and dsputil_init_mmx().

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

Thirdpel motion compensation with rounding (a+b+1)>>1. this is an array[12] of motion compensation funcions for the 9 thirdpel 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 240 of file dsputil.h.

Referenced by dsputil_init(), and svq3_mc_dir_part().

Definition at line 241 of file dsputil.h.

Referenced by dsputil_init(), and svq3_mc_dir_part().

Definition at line 243 of file dsputil.h.

Referenced by check_bidir_mv(), ff_init_me(), h263_mv4_search(), and MPV_decode_mb_internal().

Definition at line 244 of file dsputil.h.

Referenced by check_bidir_mv(), ff_init_me(), and MPV_decode_mb_internal().

Definition at line 245 of file dsputil.h.

Referenced by ff_init_me(), h263_mv4_search(), and MPV_decode_mb_internal().

Definition at line 246 of file dsputil.h.

Definition at line 247 of file dsputil.h.

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

h264 Chram MC

Definition at line 252 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_align(), dsputil_init_mmx(), hl_decode_mb(), and MPV_decode_mb_internal().

Definition at line 255 of file dsputil.h.

Referenced by hl_decode_mb().

Definition at line 256 of file dsputil.h.

Referenced by hl_decode_mb().

Definition at line 258 of file dsputil.h.

Referenced by dsputil_init(), and hl_decode_mb().

Definition at line 259 of file dsputil.h.

Referenced by dsputil_init(), and hl_decode_mb().

Definition at line 261 of file dsputil.h.

Referenced by dsputil_init(), dsputil_init_alpha(), and dsputil_init_ppc().

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

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

void(* DSPContext::sub_hfyu_median_prediction)(uint8_t *dst, uint8_t *src1, 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(), dsputil_init_mmx(), and encode_frame().

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

void(* DSPContext::h264_v_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)

void(* DSPContext::h264_h_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)

void(* DSPContext::h264_v_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)

void(* DSPContext::h264_h_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)

void(* DSPContext::h264_v_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta)

void(* DSPContext::h264_h_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta)

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

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

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

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

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

Referenced by dsputil_init(), and dvvideo_init().

void(* DSPContext::idct)(DCTELEM *block)

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

block -> idct -> clip to unsigned 8 bit -> dest. (-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...)

Parameters:
line_size size in bytes of a horizotal line of dest

Referenced by dsputil_init(), dsputil_init_alpha(), dsputil_init_armv4l(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_ppc(), dsputil_init_sh4(), dvvideo_init(), idct_put(), mjpeg_decode_init(), MPV_common_init_mlib(), MPV_common_init_ppc(), MPV_decode_mb_internal(), put_dct(), render_fragments(), and render_slice().

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

block -> idct -> add dest -> clip to unsigned 8 bit -> dest.

Parameters:
line_size size in bytes of a horizotal line of dest

Referenced by add_dct(), add_dequant_dct(), dsputil_init(), dsputil_init_alpha(), dsputil_init_armv4l(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_ppc(), dsputil_init_sh4(), MPV_common_init_mlib(), MPV_common_init_ppc(), rd8x8_c(), render_fragments(), render_slice(), and wmv2_add_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 317 of file dsputil.h.

Referenced by common_init(), DCT_common_init(), dct_quantize_altivec(), decode_init(), decode_vol_header(), decode_vop_header(), dsputil_init(), dvvideo_init(), h263_pred_acdc(), mpeg1_decode_sequence(), mpeg4_pred_ac(), mpeg_decode_init(), mpeg_decode_picture_coding_extension(), mpeg_decode_quant_matrix_extension(), MPV_decode_mb_internal(), vcr2_init_sequence(), vp3_decode_init(), and wmv2_common_init().

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

Referenced by dsputil_init(), and dsputil_init_mmx().

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

Referenced by dsputil_init(), and dsputil_init_mmx().

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

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

Referenced by dsputil_init(), and hl_decode_mb().


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

Generated on Mon Apr 28 14:22:45 2008 for Cinelerra by  doxygen 1.5.5