libavcodec/dsputil.h File Reference

DSP utils. More...

#include "libavutil/intreadwrite.h"
#include "avcodec.h"

Go to the source code of this file.

Data Structures

struct  ScanTable
 Scantable. More...
struct  DSPContext
 DSPContext. More...
struct  FFTComplex
struct  FFTContext
struct  MDCTContext
struct  RDFTContext

Defines

#define MAX_NEG_CROP   1024
#define DEF_OLD_QPEL(name)
#define CALL_2X_PIXELS(a, b, n)
#define FF_NO_IDCT_PERM   1
#define FF_LIBMPEG2_IDCT_PERM   2
#define FF_SIMPLE_IDCT_PERM   3
#define FF_TRANSPOSE_IDCT_PERM   4
#define FF_PARTTRANS_IDCT_PERM   5
#define FF_SSE2_IDCT_PERM   6
#define BASIS_SHIFT   16
#define RECON_SHIFT   6
#define EDGE_WIDTH   16
#define BYTE_VEC32(c)   ((c)*0x01010101UL)
#define emms_c()
 Empty mmx state.
#define DECLARE_ALIGNED_16(t, v)   DECLARE_ALIGNED(16, t, v)
#define emms_c()
 Empty mmx state.
#define DECLARE_ALIGNED_8(t, v)   DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN   8
#define WRAPPER8_16(name8, name16)
#define WRAPPER8_16_SQ(name8, name16)

Typedefs

typedef short DCTELEM
typedef int DWTELEM
typedef short IDWTELEM
typedef void(* op_pixels_func )(uint8_t *block, const uint8_t *pixels, int line_size, int h)
typedef void(* tpel_mc_func )(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h)
typedef void(* qpel_mc_func )(uint8_t *dst, uint8_t *src, int stride)
typedef void(* h264_chroma_mc_func )(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y)
typedef void(* h264_weight_func )(uint8_t *block, int stride, int log2_denom, int weight, int offset)
typedef void(* h264_biweight_func )(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset)
typedef int(* me_cmp_func )(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h)
typedef struct slice_buffer_s slice_buffer
typedef float FFTSample

Enumerations

enum  RDFTransformType { RDFT, IRDFT, RIDFT, IRIDFT }

Functions

void fdct_ifast (DCTELEM *data)
void fdct_ifast248 (DCTELEM *data)
void ff_jpeg_fdct_islow (DCTELEM *data)
void ff_fdct248_islow (DCTELEM *data)
void j_rev_dct (DCTELEM *data)
void j_rev_dct4 (DCTELEM *data)
void j_rev_dct2 (DCTELEM *data)
void j_rev_dct1 (DCTELEM *data)
void ff_wmv2_idct_c (DCTELEM *data)
void ff_fdct_mmx (DCTELEM *block)
void ff_fdct_mmx2 (DCTELEM *block)
void ff_fdct_sse2 (DCTELEM *block)
void ff_h264_idct8_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct8_dc_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct_dc_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_lowres_idct_add_c (uint8_t *dst, int stride, DCTELEM *block)
void ff_h264_lowres_idct_put_c (uint8_t *dst, int stride, DCTELEM *block)
void ff_h264_idct_add16_c (uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8])
void ff_h264_idct_add16intra_c (uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8])
void ff_h264_idct8_add4_c (uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8])
void ff_h264_idct_add8_c (uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8])
void ff_vector_fmul_add_add_c (float *dst, const float *src0, const float *src1, const float *src2, int src3, int blocksize, int step)
void ff_vector_fmul_window_c (float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len)
void ff_float_to_int16_c (int16_t *dst, const float *src, long len)
void ff_float_to_int16_interleave_c (int16_t *dst, const float **src, long len, int channels)
void ff_vp3_idct_c (DCTELEM *block)
void ff_vp3_idct_put_c (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_idct_add_c (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_v_loop_filter_c (uint8_t *src, int stride, int *bounding_values)
void ff_vp3_h_loop_filter_c (uint8_t *src, int stride, int *bounding_values)
void ff_vp6_filter_diag4_c (uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights)
void ff_img_copy_plane (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink22 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink44 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink88 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_gmc_c (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 ff_init_scantable (uint8_t *, ScanTable *st, const uint8_t *src_scantable)
void ff_emulated_edge_mc (uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h)
 Copies a rectangular area of samples to a temporary buffer and replicates the boarder samples.
void dsputil_static_init (void)
void dsputil_init (DSPContext *p, AVCodecContext *avctx)
int ff_check_alignment (void)
void ff_block_permute (DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last)
 permute block according to permuatation.
void ff_set_cmp (DSPContext *c, me_cmp_func *cmp, int type)
static uint32_t rnd_avg32 (uint32_t a, uint32_t b)
static uint32_t no_rnd_avg32 (uint32_t a, uint32_t b)
static int get_penalty_factor (int lambda, int lambda2, int type)
int mm_support (void)
void dsputil_init_alpha (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_arm (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_bfin (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mlib (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mmi (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_ppc (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_sh4 (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_vis (DSPContext *c, AVCodecContext *avctx)
void add_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size)
void put_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size)
void put_signed_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size)
static void emms (void)
void dsputil_init_pix_mmx (DSPContext *c, AVCodecContext *avctx)
void get_psnr (uint8_t *orig_image[3], uint8_t *coded_image[3], int orig_linesize[3], int coded_linesize, AVCodecContext *avctx)
int ff_fft_init (FFTContext *s, int nbits, int inverse)
 Sets up a complex FFT.
void ff_fft_permute_c (FFTContext *s, FFTComplex *z)
void ff_fft_permute_sse (FFTContext *s, FFTComplex *z)
void ff_fft_calc_c (FFTContext *s, FFTComplex *z)
void ff_fft_calc_sse (FFTContext *s, FFTComplex *z)
void ff_fft_calc_3dn (FFTContext *s, FFTComplex *z)
void ff_fft_calc_3dn2 (FFTContext *s, FFTComplex *z)
void ff_fft_calc_altivec (FFTContext *s, FFTComplex *z)
 Do a complex FFT with the parameters defined in ff_fft_init().
static void ff_fft_permute (FFTContext *s, FFTComplex *z)
 Do the permutation needed BEFORE calling ff_fft_calc().
static void ff_fft_calc (FFTContext *s, FFTComplex *z)
 Do a complex FFT with the parameters defined in ff_fft_init().
void ff_fft_end (FFTContext *s)
static void ff_imdct_calc (MDCTContext *s, FFTSample *output, const FFTSample *input)
static void ff_imdct_half (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_kbd_window_init (float *window, float alpha, int n)
 Generate a Kaiser-Bessel Derived Window.
void ff_sine_window_init (float *window, int n)
 Generate a sine window.
int ff_mdct_init (MDCTContext *s, int nbits, int inverse)
 init MDCT or IMDCT computation.
void ff_imdct_calc_c (MDCTContext *s, FFTSample *output, const FFTSample *input)
 Compute inverse MDCT of size N = 2^nbits.
void ff_imdct_half_c (MDCTContext *s, FFTSample *output, const FFTSample *input)
 Compute the middle half of the inverse MDCT of size N = 2^nbits, thus excluding the parts that can be derived by symmetry.
void ff_imdct_calc_3dn (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_half_3dn (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_calc_3dn2 (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_half_3dn2 (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_calc_sse (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_half_sse (MDCTContext *s, FFTSample *output, const FFTSample *input)
void ff_mdct_calc (MDCTContext *s, FFTSample *out, const FFTSample *input)
 Compute MDCT of size N = 2^nbits.
void ff_mdct_end (MDCTContext *s)
int ff_rdft_init (RDFTContext *s, int nbits, enum RDFTransformType trans)
 Sets up a real FFT.
void ff_rdft_calc (RDFTContext *s, FFTSample *data)
void ff_rdft_end (RDFTContext *s)
static void copy_block2 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block4 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block8 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block9 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block16 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block17 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)

Variables

const uint8_t ff_alternate_horizontal_scan [64]
const uint8_t ff_alternate_vertical_scan [64]
const uint8_t ff_zigzag_direct [64]
const uint8_t ff_zigzag248_direct [64]
uint32_t ff_squareTbl [512]
uint8_t ff_cropTbl [256+2 *MAX_NEG_CROP]
int mm_flags
FFTSampleff_cos_tabs [13]
float ff_sine_128 [128]
float ff_sine_256 [256]
float ff_sine_512 [512]
float ff_sine_1024 [1024]
float ff_sine_2048 [2048]
float ff_sine_4096 [4096]
float * ff_sine_windows [6]


Detailed Description

DSP utils.

note, many functions in here may use MMX which trashes the FPU state, it is absolutely necessary to call emms_c() between dsp & float/double code

Definition in file dsputil.h.


Define Documentation

#define BASIS_SHIFT   16

#define BYTE_VEC32 (  )     ((c)*0x01010101UL)

Definition at line 536 of file dsputil.h.

Referenced by no_rnd_avg32(), and rnd_avg32().

#define CALL_2X_PIXELS ( a,
b,
 ) 

Value:

static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\
    b(block  , pixels  , line_size, h);\
    b(block+n, pixels+n, line_size, h);\
}

Definition at line 159 of file dsputil.h.

#define DECLARE_ALIGNED_16 ( t,
 )     DECLARE_ALIGNED(16, t, v)

#define DECLARE_ALIGNED_8 ( t,
 )     DECLARE_ALIGNED(8, t, v)

#define DEF_OLD_QPEL ( name   ) 

Value:

void ff_put_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
void ff_avg_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);

Definition at line 141 of file dsputil.h.

#define EDGE_WIDTH   16

 
#define emms_c (  ) 

Value:

{\
    if (mm_flags & FF_MM_MMX)\
        emms();\
}
Empty mmx state.

this must be called between any dsp function and float/double code. for example sin(); dsp->idct_put(); emms_c(); cos()

Definition at line 611 of file dsputil.h.

 
#define emms_c (  ) 

#define FF_LIBMPEG2_IDCT_PERM   2

#define FF_NO_IDCT_PERM   1

#define FF_PARTTRANS_IDCT_PERM   5

Definition at line 442 of file dsputil.h.

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

#define FF_SIMPLE_IDCT_PERM   3

Definition at line 440 of file dsputil.h.

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

#define FF_SSE2_IDCT_PERM   6

Definition at line 443 of file dsputil.h.

Referenced by dsputil_init(), and dsputil_init_mmx().

#define FF_TRANSPOSE_IDCT_PERM   4

#define MAX_NEG_CROP   1024

#define RECON_SHIFT   6

#define STRIDE_ALIGN   8

Definition at line 652 of file dsputil.h.

Referenced by avcodec_default_get_buffer(), and fill_rectangle().

#define WRAPPER8_16 ( name8,
name16   ) 

Value:

static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
    return name8(s, dst           , src           , stride, h)\
          +name8(s, dst+8         , src+8         , stride, h);\
}

Definition at line 801 of file dsputil.h.

#define WRAPPER8_16_SQ ( name8,
name16   ) 

Value:

static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
    int score=0;\
    score +=name8(s, dst           , src           , stride, 8);\
    score +=name8(s, dst+8         , src+8         , stride, 8);\
    if(h==16){\
        dst += 8*stride;\
        src += 8*stride;\
        score +=name8(s, dst           , src           , stride, 8);\
        score +=name8(s, dst+8         , src+8         , stride, 8);\
    }\
    return score;\
}

Definition at line 807 of file dsputil.h.


Typedef Documentation

typedef short DCTELEM

Definition at line 39 of file dsputil.h.

typedef int DWTELEM

Definition at line 40 of file dsputil.h.

typedef float FFTSample

Definition at line 664 of file dsputil.h.

typedef void(* h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset)

Definition at line 139 of file dsputil.h.

typedef void(* h264_chroma_mc_func)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y)

Definition at line 137 of file dsputil.h.

typedef void(* h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset)

Definition at line 138 of file dsputil.h.

typedef short IDWTELEM

Definition at line 41 of file dsputil.h.

typedef int(* me_cmp_func)(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h)

Definition at line 168 of file dsputil.h.

typedef void(* op_pixels_func)(uint8_t *block, const uint8_t *pixels, int line_size, int h)

Definition at line 134 of file dsputil.h.

typedef void(* qpel_mc_func)(uint8_t *dst, uint8_t *src, int stride)

Definition at line 136 of file dsputil.h.

typedef struct slice_buffer_s slice_buffer

Definition at line 172 of file dsputil.h.

typedef void(* tpel_mc_func)(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h)

Definition at line 135 of file dsputil.h.


Enumeration Type Documentation

Enumerator:
RDFT 
IRDFT 
RIDFT 
IRIDFT 

Definition at line 774 of file dsputil.h.


Function Documentation

void add_pixels_clamped_mmx ( const DCTELEM block,
uint8_t *  pixels,
int  line_size 
)

static void copy_block16 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 869 of file dsputil.h.

static void copy_block17 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 883 of file dsputil.h.

static void copy_block2 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 822 of file dsputil.h.

static void copy_block4 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 833 of file dsputil.h.

static void copy_block8 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 844 of file dsputil.h.

static void copy_block9 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 856 of file dsputil.h.

void dsputil_init ( DSPContext p,
AVCodecContext avctx 
)

void dsputil_init_alpha ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 290 of file dsputil_alpha.c.

Referenced by dsputil_init().

void dsputil_init_arm ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 124 of file dsputil_arm.c.

Referenced by dsputil_init().

void dsputil_init_bfin ( DSPContext c,
AVCodecContext avctx 
)

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 231 of file dsputil_bfin.c.

Referenced by dsputil_init().

void dsputil_init_mlib ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 422 of file dsputil_mlib.c.

Referenced by dsputil_init().

void dsputil_init_mmi ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 142 of file dsputil_mmi.c.

Referenced by dsputil_init().

void dsputil_init_mmx ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 2561 of file dsputil_mmx.c.

Referenced by dsputil_init().

void dsputil_init_pix_mmx ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 427 of file motion_est_mmx.c.

Referenced by dsputilenc_init_mmx().

void dsputil_init_ppc ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 246 of file dsputil_ppc.c.

Referenced by dsputil_init().

void dsputil_init_sh4 ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 94 of file dsputil_sh4.c.

Referenced by dsputil_init().

void dsputil_init_vis ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 3999 of file dsputil_vis.c.

Referenced by dsputil_init().

void dsputil_static_init ( void   ) 

Definition at line 4253 of file dsputil.c.

Referenced by avcodec_init().

static void emms ( void   )  [inline, static]

Definition at line 605 of file dsputil.h.

void fdct_ifast ( DCTELEM data  ) 

Definition at line 212 of file jfdctfst.c.

Referenced by dct_quantize_trellis_c(), dsputil_init(), and ff_convert_matrix().

void fdct_ifast248 ( DCTELEM data  ) 

Definition at line 279 of file jfdctfst.c.

Referenced by dsputil_init().

void ff_block_permute ( DCTELEM block,
uint8_t *  permutation,
const uint8_t *  scantable,
int  last 
)

permute block according to permuatation.

Parameters:
last last non zero element in scantable order
permute block according to permuatation.

Parameters:
block the block which will be permuted according to the given permutation vector
permutation the permutation vector
last the last non zero coefficient in scantable order, used to speed the permutation up
scantable the used scantable, this is only used to speed the permutation up, the block is not (inverse) permutated to scantable order!

Definition at line 3400 of file dsputil.c.

Referenced by dct_quantize_altivec(), dct_quantize_bfin(), and dct_quantize_c().

int ff_check_alignment ( void   ) 

Definition at line 4270 of file dsputil.c.

Referenced by dsputil_init(), encode_thread(), estimate_motion_thread(), and mb_var_thread().

void ff_emulated_edge_mc ( uint8_t *  buf,
uint8_t *  src,
int  linesize,
int  block_w,
int  block_h,
int  src_x,
int  src_y,
int  w,
int  h 
)

Copies a rectangular area of samples to a temporary buffer and replicates the boarder samples.

Parameters:
buf destination buffer
src source buffer
linesize number of bytes between 2 vertically adjacent samples in both the source and destination buffers
block_w width of block
block_h height of block
src_x x coordinate of the top left sample of the block in the source buffer
src_y y coordinate of the top left sample of the block in the source buffer
w width of the source buffer
h height of the source buffer

Definition at line 480 of file dsputil.c.

Referenced by chroma_4mv_motion(), chroma_4mv_motion_lowres(), encode_mb_internal(), ff_mspel_motion(), gmc1_motion(), gmc_mmx(), hpel_motion(), hpel_motion_lowres(), mc_dir_part(), mca(), 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_luma(), and vp56_mc().

void ff_fdct248_islow ( DCTELEM data  ) 

Definition at line 349 of file jfdctint.c.

Referenced by dsputil_init().

void ff_fdct_mmx ( DCTELEM block  ) 

Referenced by dsputilenc_init_mmx().

void ff_fdct_mmx2 ( DCTELEM block  ) 

Referenced by dsputilenc_init_mmx().

void ff_fdct_sse2 ( DCTELEM block  ) 

Referenced by dsputilenc_init_mmx().

static void ff_fft_calc ( FFTContext s,
FFTComplex z 
) [inline, static]

Do a complex FFT with the parameters defined in ff_fft_init().

The input data must be permuted before. No 1.0/sqrt(n) normalization is done.

Definition at line 712 of file dsputil.h.

Referenced by ff_imdct_half_c(), ff_mdct_calc(), ff_rdft_calc_c(), imc_imdct256(), and main().

void ff_fft_calc_3dn ( FFTContext s,
FFTComplex z 
)

Referenced by ff_fft_init().

void ff_fft_calc_3dn2 ( FFTContext s,
FFTComplex z 
)

Definition at line 44 of file fft_3dn2.c.

Referenced by ff_fft_init().

void ff_fft_calc_altivec ( FFTContext s,
FFTComplex z 
)

Do a complex FFT with the parameters defined in ff_fft_init().

The input data must be permuted before with s->revtab table. No 1.0/sqrt(n) normalization is done. AltiVec-enabled This code assumes that the 'z' pointer is 16 bytes-aligned It also assumes all FFTComplex are 8 bytes-aligned pair of float The code is exactly the same as the SSE version, except that successive MUL + ADD/SUB have been merged into fused multiply-add ('vec_madd' in altivec)

Definition at line 40 of file fft_altivec.c.

Referenced by ff_fft_init().

void ff_fft_calc_c ( FFTContext s,
FFTComplex z 
)

Definition at line 370 of file fft.c.

Referenced by ff_fft_init().

void ff_fft_calc_sse ( FFTContext s,
FFTComplex z 
)

Definition at line 31 of file fft_sse.c.

Referenced by ff_fft_init().

void ff_fft_end ( FFTContext s  ) 

Definition at line 209 of file fft.c.

Referenced by ff_mdct_end(), ff_rdft_end(), imc_decode_close(), and main().

int ff_fft_init ( FFTContext s,
int  nbits,
int  inverse 
)

Sets up a complex FFT.

Parameters:
nbits log2 of the length of the input array
inverse if 0 perform the forward transform, if 1 perform the inverse

Definition at line 61 of file fft.c.

Referenced by ff_mdct_init(), ff_rdft_init(), imc_decode_init(), and main().

static void ff_fft_permute ( FFTContext s,
FFTComplex z 
) [inline, static]

Do the permutation needed BEFORE calling ff_fft_calc().

Definition at line 704 of file dsputil.h.

Referenced by ff_rdft_calc_c(), imc_imdct256(), and main().

void ff_fft_permute_c ( FFTContext s,
FFTComplex z 
)

Definition at line 184 of file fft.c.

Referenced by ff_fft_init().

void ff_fft_permute_sse ( FFTContext s,
FFTComplex z 
)

Definition at line 56 of file fft_sse.c.

Referenced by ff_fft_init().

void ff_float_to_int16_c ( int16_t *  dst,
const float *  src,
long  len 
)

Definition at line 4078 of file dsputil.c.

Referenced by aac_decode_init(), dca_decode_init(), decode_init(), and dsputil_init().

void ff_float_to_int16_interleave_c ( int16_t *  dst,
const float **  src,
long  len,
int  channels 
)

Definition at line 4084 of file dsputil.c.

Referenced by ac3_decode_init(), dsputil_init(), and vorbis_decode_init().

void ff_gmc_c ( 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 
)

Definition at line 1300 of file dsputil.c.

Referenced by dsputil_init(), and gmc_mmx().

void ff_h264_idct8_add4_c ( uint8_t *  dst,
const int *  blockoffset,
DCTELEM block,
int  stride,
const uint8_t  nnzc[6 *8] 
)

Definition at line 199 of file h264idct.c.

Referenced by dsputil_init().

void ff_h264_idct8_add_c ( uint8_t *  dst,
DCTELEM block,
int  stride 
)

void ff_h264_idct8_dc_add_c ( uint8_t *  dst,
DCTELEM block,
int  stride 
)

Definition at line 156 of file h264idct.c.

Referenced by dsputil_init(), and ff_h264_idct8_add4_c().

void ff_h264_idct_add16_c ( uint8_t *  dst,
const int *  blockoffset,
DCTELEM block,
int  stride,
const uint8_t  nnzc[6 *8] 
)

Definition at line 180 of file h264idct.c.

Referenced by dsputil_init().

void ff_h264_idct_add16intra_c ( uint8_t *  dst,
const int *  blockoffset,
DCTELEM block,
int  stride,
const uint8_t  nnzc[6 *8] 
)

Definition at line 191 of file h264idct.c.

Referenced by dsputil_init().

void ff_h264_idct_add8_c ( uint8_t **  dest,
const int *  blockoffset,
DCTELEM block,
int  stride,
const uint8_t  nnzc[6 *8] 
)

Definition at line 210 of file h264idct.c.

Referenced by dsputil_init().

void ff_h264_idct_add_c ( uint8_t *  dst,
DCTELEM block,
int  stride 
)

void ff_h264_idct_dc_add_c ( uint8_t *  dst,
DCTELEM block,
int  stride 
)

void ff_h264_lowres_idct_add_c ( uint8_t *  dst,
int  stride,
DCTELEM block 
)

Definition at line 65 of file h264idct.c.

Referenced by dsputil_init().

void ff_h264_lowres_idct_put_c ( uint8_t *  dst,
int  stride,
DCTELEM block 
)

Definition at line 69 of file h264idct.c.

Referenced by dsputil_init().

static void ff_imdct_calc ( MDCTContext s,
FFTSample output,
const FFTSample input 
) [inline, static]

Definition at line 729 of file dsputil.h.

Referenced by IMLT(), imlt_gain(), main(), nelly_decode_block(), and wma_decode_block().

void ff_imdct_calc_3dn ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Referenced by ff_fft_init().

void ff_imdct_calc_3dn2 ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Definition at line 146 of file fft_3dn2.c.

Referenced by ff_fft_init().

void ff_imdct_calc_c ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Compute inverse MDCT of size N = 2^nbits.

Parameters:
output N samples
input N/2 samples

Definition at line 162 of file mdct.c.

Referenced by ff_fft_init().

void ff_imdct_calc_sse ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Definition at line 174 of file fft_sse.c.

Referenced by ff_fft_init().

static void ff_imdct_half ( MDCTContext s,
FFTSample output,
const FFTSample input 
) [inline, static]

void ff_imdct_half_3dn ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Referenced by ff_fft_init().

void ff_imdct_half_3dn2 ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Definition at line 55 of file fft_3dn2.c.

Referenced by ff_fft_init(), and ff_imdct_calc_3dn2().

void ff_imdct_half_c ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Compute the middle half of the inverse MDCT of size N = 2^nbits, thus excluding the parts that can be derived by symmetry.

Parameters:
output N/2 samples
input N/2 samples

Definition at line 119 of file mdct.c.

Referenced by ff_fft_init(), and ff_imdct_calc_c().

void ff_imdct_half_sse ( MDCTContext s,
FFTSample output,
const FFTSample input 
)

Definition at line 73 of file fft_sse.c.

Referenced by ff_fft_init(), and ff_imdct_calc_sse().

void ff_img_copy_plane ( uint8_t *  dst,
int  dst_wrap,
const uint8_t *  src,
int  src_wrap,
int  width,
int  height 
)

Definition at line 941 of file imgconvert.c.

Referenced by av_picture_copy(), dsputil_init(), and img_convert().

void ff_init_scantable ( uint8_t *  ,
ScanTable st,
const uint8_t *  src_scantable 
)

void ff_jpeg_fdct_islow ( DCTELEM data  ) 

Definition at line 262 of file jfdctint.c.

Referenced by dsputil_init(), and ff_convert_matrix().

void ff_kbd_window_init ( float *  window,
float  alpha,
int  n 
)

Generate a Kaiser-Bessel Derived Window.

Parameters:
window pointer to half window
alpha determines window shape
n size of half window

Definition at line 30 of file mdct.c.

Referenced by aac_decode_init(), aac_encode_init(), and ac3_decode_init().

void ff_mdct_calc ( MDCTContext s,
FFTSample out,
const FFTSample input 
)

Compute MDCT of size N = 2^nbits.

Parameters:
input N samples
out N/2 samples

Definition at line 182 of file mdct.c.

Referenced by apply_mdct(), apply_window_and_mdct(), and main().

void ff_mdct_end ( MDCTContext s  ) 

int ff_mdct_init ( MDCTContext s,
int  nbits,
int  inverse 
)

void ff_rdft_calc ( RDFTContext s,
FFTSample data 
)

Definition at line 119 of file rdft.c.

Referenced by qdm2_calculate_fft().

void ff_rdft_end ( RDFTContext s  ) 

Definition at line 124 of file rdft.c.

Referenced by qdm2_decode_close().

int ff_rdft_init ( RDFTContext s,
int  nbits,
enum RDFTransformType  trans 
)

Sets up a real FFT.

Parameters:
nbits log2 of the length of the input array
trans the type of transform

Definition at line 48 of file rdft.c.

Referenced by qdm2_decode_init().

void ff_set_cmp ( DSPContext c,
me_cmp_func cmp,
int  type 
)

Definition at line 3425 of file dsputil.c.

Referenced by dvvideo_init(), encode_init(), ff_init_me(), and MPV_encode_init().

void ff_shrink22 ( uint8_t *  dst,
int  dst_wrap,
const uint8_t *  src,
int  src_wrap,
int  width,
int  height 
)

Definition at line 1381 of file imgconvert.c.

Referenced by dsputil_init(), and img_convert().

void ff_shrink44 ( uint8_t *  dst,
int  dst_wrap,
const uint8_t *  src,
int  src_wrap,
int  width,
int  height 
)

Definition at line 1414 of file imgconvert.c.

Referenced by dsputil_init(), and img_convert().

void ff_shrink88 ( uint8_t *  dst,
int  dst_wrap,
const uint8_t *  src,
int  src_wrap,
int  width,
int  height 
)

Definition at line 1445 of file imgconvert.c.

Referenced by dsputil_init().

void ff_sine_window_init ( float *  window,
int  n 
)

Generate a sine window.

Parameters:
window pointer to half window
n size of half window

Definition at line 62 of file mdct.c.

Referenced by aac_decode_init(), aac_encode_init(), decode_init(), encode_init(), ff_wma_init(), imc_decode_init(), and init_cook_mlt().

void ff_vector_fmul_add_add_c ( float *  dst,
const float *  src0,
const float *  src1,
const float *  src2,
int  src3,
int  blocksize,
int  step 
)

void ff_vector_fmul_window_c ( float *  dst,
const float *  src0,
const float *  src1,
const float *  win,
float  add_bias,
int  len 
)

Definition at line 4046 of file dsputil.c.

Referenced by dsputil_init(), vector_fmul_window_3dnow2(), and vector_fmul_window_sse().

void ff_vp3_h_loop_filter_c ( uint8_t *  src,
int  stride,
int *  bounding_values 
)

Definition at line 242 of file vp3dsp.c.

Referenced by dsputil_init().

void ff_vp3_idct_add_c ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 222 of file vp3dsp.c.

Referenced by dsputil_init().

void ff_vp3_idct_c ( DCTELEM block  ) 

Definition at line 214 of file vp3dsp.c.

Referenced by dsputil_init().

void ff_vp3_idct_put_c ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 218 of file vp3dsp.c.

Referenced by dsputil_init().

void ff_vp3_v_loop_filter_c ( uint8_t *  src,
int  stride,
int *  bounding_values 
)

Definition at line 226 of file vp3dsp.c.

Referenced by dsputil_init().

void ff_vp6_filter_diag4_c ( uint8_t *  dst,
uint8_t *  src,
int  stride,
const int16_t *  h_weights,
const int16_t *  v_weights 
)

Definition at line 28 of file vp6dsp.c.

Referenced by dsputil_init().

void ff_wmv2_idct_c ( DCTELEM data  ) 

Definition at line 4182 of file dsputil.c.

Referenced by dsputil_init(), ff_wmv2_idct_add_c(), and ff_wmv2_idct_put_c().

static int get_penalty_factor ( int  lambda,
int  lambda2,
int  type 
) [inline, static]

void get_psnr ( uint8_t *  orig_image[3],
uint8_t *  coded_image[3],
int  orig_linesize[3],
int  coded_linesize,
AVCodecContext avctx 
)

void j_rev_dct ( DCTELEM data  ) 

void j_rev_dct1 ( DCTELEM data  ) 

Referenced by dsputil_init().

void j_rev_dct2 ( DCTELEM data  ) 

void j_rev_dct4 ( DCTELEM data  ) 

int mm_support ( void   ) 

Definition at line 119 of file dsputil_arm.c.

Referenced by dsputil_init_mmx(), ff_fft_init(), and main().

static uint32_t no_rnd_avg32 ( uint32_t  a,
uint32_t  b 
) [inline, static]

Definition at line 543 of file dsputil.h.

void put_pixels_clamped_mmx ( const DCTELEM block,
uint8_t *  pixels,
int  line_size 
)

void put_signed_pixels_clamped_mmx ( const DCTELEM block,
uint8_t *  pixels,
int  line_size 
)

Definition at line 279 of file dsputil_mmx.c.

Referenced by dsputil_init_mmx(), ff_vp3_idct_put_mmx(), and ff_vp3_idct_put_sse2().

static uint32_t rnd_avg32 ( uint32_t  a,
uint32_t  b 
) [inline, static]

Definition at line 538 of file dsputil.h.


Variable Documentation

const uint8_t ff_alternate_horizontal_scan[64]

Definition at line 91 of file dsputil.c.

Referenced by decode_vop_header(), and ff_dct_common_init().

const uint8_t ff_alternate_vertical_scan[64]

Definition at line 45 of file fft.c.

Referenced by ff_fft_init(), and ff_rdft_init().

uint8_t ff_cropTbl[256+2 *MAX_NEG_CROP]

float ff_sine_1024[1024]

Definition at line 54 of file mdct.c.

Referenced by aac_decode_init(), aac_encode_init(), and imdct_and_windowing().

float ff_sine_128[128]

float ff_sine_2048[2048]

Definition at line 55 of file mdct.c.

float ff_sine_256[256]

Definition at line 52 of file mdct.c.

float ff_sine_4096[4096]

Definition at line 56 of file mdct.c.

float ff_sine_512[512]

Definition at line 53 of file mdct.c.

float* ff_sine_windows[6]

Definition at line 57 of file mdct.c.

Referenced by ff_wma_init().

uint32_t ff_squareTbl[512]

Definition at line 58 of file dsputil.c.

Referenced by pix_norm1(), and sse().

const uint8_t ff_zigzag248_direct[64]

Definition at line 77 of file dsputil.c.

Referenced by dv_init_enc_block(), and dvvideo_init().

const uint8_t ff_zigzag_direct[64]

int mm_flags


Generated on Fri Oct 26 02:35:43 2012 for FFmpeg by  doxygen 1.5.8