Logo Search packages:      
Sourcecode: blender version File versions  Download package

dsputil.h File Reference

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.

#include "common.h"
#include "avcodec.h"

Go to the source code of this file.


struct  DSPContext
struct  FFTComplex
struct  FFTContext
struct  MDCTContext


#define BASIS_SHIFT   16
#define BYTE_VEC32(c)   ((c)*0x01010101UL)
#define CALL_2X_PIXELS(a, b, n)
#define DECLARE_ALIGNED_16(t, v)   __declspec(align(16)) t v
#define DECLARE_ALIGNED_8(t, v)   t v __attribute__ ((aligned (8)))
#define DEF_OLD_QPEL(name)
#define emms_c()
#define FF_NO_IDCT_PERM   1
#define LD16(a)   (*((uint16_t*)(a)))
#define LD32(a)   (*((uint32_t*)(a)))
#define LD64(a)   (*((uint64_t*)(a)))
#define MAX_NEG_CROP   1024
#define RECON_SHIFT   6
#define ST16(a, b)   *((uint16_t*)(a)) = (b)
#define ST32(a, b)   *((uint32_t*)(a)) = (b)
#define STRIDE_ALIGN   8
#define WARPER8_16(name8, name16)
#define WARPER8_16_SQ(name8, name16)


typedef short DCTELEM
typedef int DWTELEM
typedef float FFTSample
typedef void(* h264_biweight_func )(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset)
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 int(* me_cmp_func )(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h)
typedef void(* op_pixels_func )(uint8_t *block, const uint8_t *pixels, int line_size, int h)
typedef void(* qpel_mc_func )(uint8_t *dst, uint8_t *src, int stride)
typedef struct slice_buffer_s slice_buffer
typedef void(* tpel_mc_func )(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h)


void dsputil_init (DSPContext *p, AVCodecContext *avctx)
void dsputil_static_init (void)
void fdct_ifast (DCTELEM *data)
void fdct_ifast248 (DCTELEM *data)
void ff_block_permute (DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last)
void ff_fdct248_islow (DCTELEM *data)
void ff_fdct_mmx (DCTELEM *block)
void ff_fdct_mmx2 (DCTELEM *block)
void ff_fdct_sse2 (DCTELEM *block)
static void ff_fft_calc (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)
void ff_fft_calc_c (FFTContext *s, FFTComplex *z)
void ff_fft_calc_sse (FFTContext *s, FFTComplex *z)
void ff_fft_end (FFTContext *s)
int ff_fft_init (FFTContext *s, int nbits, int inverse)
void ff_fft_permute (FFTContext *s, FFTComplex *z)
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_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)
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)
void ff_h264_lowres_idct_put_c (uint8_t *dst, int stride, DCTELEM *block)
void ff_imdct_calc (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_img_copy_plane (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_jpeg_fdct_islow (DCTELEM *data)
void ff_mdct_calc (MDCTContext *s, FFTSample *out, const FFTSample *input, FFTSample *tmp)
void ff_mdct_end (MDCTContext *s)
int ff_mdct_init (MDCTContext *s, int nbits, int inverse)
void ff_set_cmp (DSPContext *c, me_cmp_func *cmp, int type)
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_vp3_idct_add_c (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_idct_c (DCTELEM *block)
void ff_vp3_idct_put_c (uint8_t *dest, int line_size, DCTELEM *block)
static int get_penalty_factor (int lambda, int lambda2, int type)
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)
void j_rev_dct2 (DCTELEM *data)
void j_rev_dct4 (DCTELEM *data)
int mm_support (void)
static uint32_t no_rnd_avg32 (uint32_t a, uint32_t b)
static uint32_t rnd_avg32 (uint32_t a, uint32_t b)


uint8_t cropTbl [256+2 *MAX_NEG_CROP]
const uint8_t ff_alternate_horizontal_scan [64]
const uint8_t ff_alternate_vertical_scan [64]
const uint8_t ff_zigzag248_direct [64]
const uint8_t ff_zigzag_direct [64]
uint32_t squareTbl [512]

Generated by  Doxygen 1.6.0   Back to index