FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
dsputil.c File Reference

DSP utils. More...

#include "libavutil/attributes.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "avcodec.h"
#include "copy_block.h"
#include "dct.h"
#include "dsputil.h"
#include "simple_idct.h"
#include "faandct.h"
#include "faanidct.h"
#include "imgconvert.h"
#include "mathops.h"
#include "mpegvideo.h"
#include "config.h"
#include "diracdsp.h"
#include "dsputil_template.c"

Go to the source code of this file.

Macros

#define BIT_DEPTH   16
 
#define BIT_DEPTH   8
 
#define pb_7f   (~0UL/255 * 0x7f)
 
#define pb_80   (~0UL/255 * 0x80)
 
#define avg2(a, b)   ((a+b+1)>>1)
 
#define avg4(a, b, c, d)   ((a+b+c+d+2)>>2)
 
#define QPEL_MC(r, OPNAME, RND, OP)
 
#define op_avg(a, b)   a = (((a)+cm[((b) + 16)>>5]+1)>>1)
 
#define op_avg_no_rnd(a, b)   a = (((a)+cm[((b) + 15)>>5])>>1)
 
#define op_put(a, b)   a = cm[((b) + 16)>>5]
 
#define op_put_no_rnd(a, b)   a = cm[((b) + 15)>>5]
 
#define put_qpel8_mc00_c   ff_put_pixels8x8_c
 
#define avg_qpel8_mc00_c   ff_avg_pixels8x8_c
 
#define put_qpel16_mc00_c   ff_put_pixels16x16_c
 
#define avg_qpel16_mc00_c   ff_avg_pixels16x16_c
 
#define put_no_rnd_qpel8_mc00_c   ff_put_pixels8x8_c
 
#define put_no_rnd_qpel16_mc00_c   ff_put_pixels16x16_c
 
#define B   0
 
#define G   1
 
#define R   2
 
#define A   3
 
#define BUTTERFLY2(o1, o2, i1, i2)
 
#define BUTTERFLY1(x, y)
 
#define BUTTERFLYA(x, y)   (FFABS((x)+(y)) + FFABS((x)-(y)))
 
#define VSAD_INTRA(size)
 
#define SQ(a)   ((a)*(a))
 
#define VSSE_INTRA(size)
 
#define WRAPPER8_16_SQ(name8, name16)
 
#define dspfunc(PFX, IDX, NUM)
 
#define SET_CMP_FUNC(name)
 
#define FUNC(f, depth)   f ## _ ## depth
 
#define FUNCC(f, depth)   f ## _ ## depth ## _c
 
#define BIT_DEPTH_FUNCS(depth)   c->get_pixels = FUNCC(get_pixels, depth);
 

Functions

av_cold void ff_init_scantable (uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
 
av_cold void ff_init_scantable_permutation (uint8_t *idct_permutation, int idct_permutation_type)
 
static int pix_sum_c (uint8_t *pix, int line_size)
 
static int pix_norm1_c (uint8_t *pix, int line_size)
 
static void bswap_buf (uint32_t *dst, const uint32_t *src, int w)
 
static void bswap16_buf (uint16_t *dst, const uint16_t *src, int len)
 
static int sse4_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int sse8_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int sse16_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static void diff_pixels_c (int16_t *av_restrict block, const uint8_t *s1, const uint8_t *s2, int stride)
 
static void put_pixels_clamped_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void put_pixels_clamped4_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void put_pixels_clamped2_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void put_signed_pixels_clamped_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void add_pixels8_c (uint8_t *av_restrict pixels, int16_t *block, int line_size)
 
static void add_pixels_clamped_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void add_pixels_clamped4_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static void add_pixels_clamped2_c (const int16_t *block, uint8_t *av_restrict pixels, int line_size)
 
static int sum_abs_dctelem_c (int16_t *block)
 
static void fill_block16_c (uint8_t *block, uint8_t value, int line_size, int h)
 
static void fill_block8_c (uint8_t *block, uint8_t value, int line_size, int h)
 
static void gmc1_c (uint8_t *dst, uint8_t *src, int stride, int h, int x16, int y16, int rounder)
 
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)
 
static void put_tpel_pixels_mc00_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc10_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc20_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc01_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc11_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc12_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc02_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc21_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void put_tpel_pixels_mc22_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc00_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc10_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc20_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc01_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc11_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc12_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc02_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc21_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
static void avg_tpel_pixels_mc22_c (uint8_t *dst, const uint8_t *src, int stride, int width, int height)
 
void ff_put_pixels8x8_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
void ff_avg_pixels8x8_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
void ff_put_pixels16x16_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
void ff_avg_pixels16x16_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void wmv2_mspel8_h_lowpass (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
 
static void wmv2_mspel8_v_lowpass (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int w)
 
static void put_mspel8_mc10_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc20_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc30_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc02_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc12_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc32_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc22_c (uint8_t *dst, uint8_t *src, ptrdiff_t stride)
 
static int pix_abs16_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs16_x2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs16_y2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs16_xy2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs8_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs8_x2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs8_y2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int pix_abs8_xy2_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
 
static int nsse16_c (void *v, uint8_t *s1, uint8_t *s2, int stride, int h)
 
static int nsse8_c (void *v, uint8_t *s1, uint8_t *s2, int stride, int h)
 
static int try_8x8basis_c (int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale)
 
static void add_8x8basis_c (int16_t rem[64], int16_t basis[64], int scale)
 
static int zero_cmp (void *s, uint8_t *a, uint8_t *b, int stride, int h)
 
void ff_set_cmp (DSPContext *c, me_cmp_func *cmp, int type)
 
static void add_bytes_c (uint8_t *dst, uint8_t *src, int w)
 
static void diff_bytes_c (uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w)
 
static void add_hfyu_median_prediction_c (uint8_t *dst, const uint8_t *src1, const uint8_t *diff, int w, int *left, int *left_top)
 
static void sub_hfyu_median_prediction_c (uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top)
 
static int add_hfyu_left_prediction_c (uint8_t *dst, const uint8_t *src, int w, int acc)
 
static void add_hfyu_left_prediction_bgr32_c (uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue, int *alpha)
 
static int hadamard8_diff8x8_c (void *s, uint8_t *dst, uint8_t *src, int stride, int h)
 
static int hadamard8_intra8x8_c (void *s, uint8_t *src, uint8_t *dummy, int stride, int h)
 
static int dct_sad8x8_c (void *c, uint8_t *src1, uint8_t *src2, int stride, int h)
 
static int dct_max8x8_c (void *c, uint8_t *src1, uint8_t *src2, int stride, int h)
 
static int quant_psnr8x8_c (void *c, uint8_t *src1, uint8_t *src2, int stride, int h)
 
static int rd8x8_c (void *c, uint8_t *src1, uint8_t *src2, int stride, int h)
 
static int bit8x8_c (void *c, uint8_t *src1, uint8_t *src2, int stride, int h)
 
static int vsad16_c (void *c, uint8_t *s1, uint8_t *s2, int stride, int h)
 
static int vsse16_c (void *c, uint8_t *s1, uint8_t *s2, int stride, int h)
 
static int ssd_int8_vs_int16_c (const int8_t *pix1, const int16_t *pix2, int size)
 
static uint32_t clipf_c_one (uint32_t a, uint32_t mini, uint32_t maxi, uint32_t maxisign)
 
static void vector_clipf_c_opposite_sign (float *dst, const float *src, float *min, float *max, int len)
 
static void vector_clipf_c (float *dst, const float *src, float min, float max, int len)
 
static int32_t scalarproduct_int16_c (const int16_t *v1, const int16_t *v2, int order)
 
static int32_t scalarproduct_and_madd_int16_c (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul)
 
static void vector_clip_int32_c (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len)
 
static void jref_idct_put (uint8_t *dest, int line_size, int16_t *block)
 
static void jref_idct_add (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct4_put (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct4_add (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct2_put (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct2_add (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct1_put (uint8_t *dest, int line_size, int16_t *block)
 
static void ff_jref_idct1_add (uint8_t *dest, int line_size, int16_t *block)
 
av_cold void ff_dsputil_static_init (void)
 
int ff_check_alignment (void)
 
av_cold void ff_dsputil_init (DSPContext *c, AVCodecContext *avctx)
 
av_cold void dsputil_init (DSPContext *c, AVCodecContext *avctx)
 
av_cold void avpriv_dsputil_init (DSPContext *c, AVCodecContext *avctx)
 

Variables

uint32_t ff_squareTbl [512] = {0, }
 
const uint8_t ff_zigzag248_direct [64]
 
const uint8_t ff_alternate_horizontal_scan [64]
 
const uint8_t ff_alternate_vertical_scan [64]
 
static const uint8_t simple_mmx_permutation [64]
 
static const uint8_t idct_sse2_row_perm [8] = {0, 4, 1, 5, 2, 6, 3, 7}
 

Detailed Description

DSP utils.

Definition in file dsputil.c.

Macro Definition Documentation

#define BIT_DEPTH   16

Definition at line 52 of file dsputil.c.

#define BIT_DEPTH   8

Definition at line 52 of file dsputil.c.

#define pb_7f   (~0UL/255 * 0x7f)

Definition at line 56 of file dsputil.c.

Referenced by add_bytes_c(), and diff_bytes_c().

#define pb_80   (~0UL/255 * 0x80)

Definition at line 57 of file dsputil.c.

Referenced by add_bytes_c(), and diff_bytes_c().

#define avg2 (   a,
  b 
)    ((a+b+1)>>1)

Definition at line 520 of file dsputil.c.

Referenced by pix_abs16_x2_c(), pix_abs16_y2_c(), pix_abs8_x2_c(), and pix_abs8_y2_c().

#define avg4 (   a,
  b,
  c,
 
)    ((a+b+c+d+2)>>2)

Definition at line 521 of file dsputil.c.

Referenced by pix_abs16_xy2_c(), and pix_abs8_xy2_c().

#define QPEL_MC (   r,
  OPNAME,
  RND,
  OP 
)

Definition at line 798 of file dsputil.c.

#define op_avg (   a,
  b 
)    a = (((a)+cm[((b) + 16)>>5]+1)>>1)

Definition at line 1316 of file dsputil.c.

#define op_avg_no_rnd (   a,
  b 
)    a = (((a)+cm[((b) + 15)>>5])>>1)

Definition at line 1317 of file dsputil.c.

#define op_put (   a,
  b 
)    a = cm[((b) + 16)>>5]

Definition at line 1318 of file dsputil.c.

#define op_put_no_rnd (   a,
  b 
)    a = cm[((b) + 15)>>5]

Definition at line 1319 of file dsputil.c.

#define put_qpel8_mc00_c   ff_put_pixels8x8_c

Definition at line 1347 of file dsputil.c.

#define avg_qpel8_mc00_c   ff_avg_pixels8x8_c

Definition at line 1348 of file dsputil.c.

#define put_qpel16_mc00_c   ff_put_pixels16x16_c

Definition at line 1349 of file dsputil.c.

#define avg_qpel16_mc00_c   ff_avg_pixels16x16_c

Definition at line 1350 of file dsputil.c.

#define put_no_rnd_qpel8_mc00_c   ff_put_pixels8x8_c

Definition at line 1351 of file dsputil.c.

#define put_no_rnd_qpel16_mc00_c   ff_put_pixels16x16_c

Definition at line 1352 of file dsputil.c.

#define B   0
#define G   1
#define R   2
#define A   3

Definition at line 1954 of file dsputil.c.

#define BUTTERFLY2 (   o1,
  o2,
  i1,
  i2 
)
Value:
o1= (i1)+(i2);\
o2= (i1)-(i2);

Definition at line 1986 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_c().

#define BUTTERFLY1 (   x,
  y 
)
Value:
{\
int a,b;\
a= x;\
b= y;\
x= a+b;\
y= a-b;\
}

Definition at line 1990 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_c().

#define BUTTERFLYA (   x,
  y 
)    (FFABS((x)+(y)) + FFABS((x)-(y)))

Definition at line 1999 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_c().

#define VSAD_INTRA (   size)
Value:
static int vsad_intra##size##_c(/*MpegEncContext*/ void *c, uint8_t *s, uint8_t *dummy, int stride, int h){ \
int score=0; \
int x,y; \
for(y=1; y<h; y++){ \
for(x=0; x<size; x+=4){ \
score+= FFABS(s[x ] - s[x +stride]) + FFABS(s[x+1] - s[x+1+stride]) \
+FFABS(s[x+2] - s[x+2+stride]) + FFABS(s[x+3] - s[x+3+stride]); \
} \
s+= stride; \
} \
\
return score; \
}

Definition at line 2332 of file dsputil.c.

#define SQ (   a)    ((a)*(a))

Definition at line 2365 of file dsputil.c.

Referenced by vsse16_c().

#define VSSE_INTRA (   size)
Value:
static int vsse_intra##size##_c(/*MpegEncContext*/ void *c, uint8_t *s, uint8_t *dummy, int stride, int h){ \
int score=0; \
int x,y; \
for(y=1; y<h; y++){ \
for(x=0; x<size; x+=4){ \
score+= SQ(s[x ] - s[x +stride]) + SQ(s[x+1] - s[x+1+stride]) \
+SQ(s[x+2] - s[x+2+stride]) + SQ(s[x+3] - s[x+3+stride]); \
} \
s+= stride; \
} \
\
return score; \
}

Definition at line 2366 of file dsputil.c.

#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 2408 of file dsputil.c.

#define dspfunc (   PFX,
  IDX,
  NUM 
)
Value:
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_c; \
c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_c; \
c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_c; \
c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_c; \
c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_c; \
c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_c; \
c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_c; \
c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_c; \
c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_c; \
c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_c; \
c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_c; \
c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_c; \
c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_c; \
c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_c; \
c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_c; \
c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_c
#define SET_CMP_FUNC (   name)
Value:
c->name[0]= name ## 16_c;\
c->name[1]= name ## 8x8_c;

Referenced by ff_dsputil_init().

#define FUNC (   f,
  depth 
)    f ## _ ## depth
#define FUNCC (   f,
  depth 
)    f ## _ ## depth ## _c
#define BIT_DEPTH_FUNCS (   depth)    c->get_pixels = FUNCC(get_pixels, depth);

Referenced by ff_dsputil_init().

Function Documentation

av_cold void ff_init_scantable ( uint8_t permutation,
ScanTable st,
const uint8_t src_scantable 
)
av_cold void ff_init_scantable_permutation ( uint8_t idct_permutation,
int  idct_permutation_type 
)
static int pix_sum_c ( uint8_t pix,
int  line_size 
)
static

Definition at line 166 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_norm1_c ( uint8_t pix,
int  line_size 
)
static

Definition at line 188 of file dsputil.c.

Referenced by ff_dsputil_init().

static void bswap_buf ( uint32_t *  dst,
const uint32_t *  src,
int  w 
)
static

Definition at line 236 of file dsputil.c.

Referenced by ff_dsputil_init().

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

Definition at line 254 of file dsputil.c.

Referenced by ff_dsputil_init().

static int sse4_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 260 of file dsputil.c.

Referenced by ff_dsputil_init().

static int sse8_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 277 of file dsputil.c.

Referenced by ff_dsputil_init().

static int sse16_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 298 of file dsputil.c.

Referenced by ff_dsputil_init().

static void diff_pixels_c ( int16_t *av_restrict  block,
const uint8_t s1,
const uint8_t s2,
int  stride 
)
static

Definition at line 328 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_pixels_clamped_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 348 of file dsputil.c.

Referenced by ff_dsputil_init(), and jref_idct_put().

static void put_pixels_clamped4_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 369 of file dsputil.c.

Referenced by ff_jref_idct4_put().

static void put_pixels_clamped2_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 386 of file dsputil.c.

Referenced by ff_jref_idct2_put().

static void put_signed_pixels_clamped_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 401 of file dsputil.c.

Referenced by ff_dsputil_init().

static void add_pixels8_c ( uint8_t *av_restrict  pixels,
int16_t *  block,
int  line_size 
)
static

Definition at line 422 of file dsputil.c.

Referenced by ff_dsputil_init().

static void add_pixels_clamped_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 442 of file dsputil.c.

Referenced by ff_dsputil_init(), and jref_idct_add().

static void add_pixels_clamped4_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 462 of file dsputil.c.

Referenced by ff_jref_idct4_add().

static void add_pixels_clamped2_c ( const int16_t *  block,
uint8_t *av_restrict  pixels,
int  line_size 
)
static

Definition at line 478 of file dsputil.c.

Referenced by ff_jref_idct2_add().

static int sum_abs_dctelem_c ( int16_t *  block)
static

Definition at line 492 of file dsputil.c.

Referenced by ff_dsputil_init().

static void fill_block16_c ( uint8_t block,
uint8_t  value,
int  line_size,
int  h 
)
static

Definition at line 500 of file dsputil.c.

Referenced by ff_dsputil_init().

static void fill_block8_c ( uint8_t block,
uint8_t  value,
int  line_size,
int  h 
)
static

Definition at line 510 of file dsputil.c.

Referenced by ff_dsputil_init().

static void gmc1_c ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x16,
int  y16,
int  rounder 
)
static

Definition at line 523 of file dsputil.c.

Referenced by ff_dsputil_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 546 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc00_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 604 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc10_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 613 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc20_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 624 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc01_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 635 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc11_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 646 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc12_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 657 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc02_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 668 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc21_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 679 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_tpel_pixels_mc22_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 690 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc00_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 701 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc10_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 710 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc20_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 721 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc01_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 732 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc11_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 743 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc12_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 754 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc02_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 765 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc21_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 776 of file dsputil.c.

Referenced by ff_dsputil_init().

static void avg_tpel_pixels_mc22_c ( uint8_t dst,
const uint8_t src,
int  stride,
int  width,
int  height 
)
inlinestatic

Definition at line 787 of file dsputil.c.

Referenced by ff_dsputil_init().

void ff_put_pixels8x8_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)

Definition at line 1330 of file dsputil.c.

Referenced by ff_dsputil_init().

void ff_avg_pixels8x8_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)

Definition at line 1334 of file dsputil.c.

void ff_put_pixels16x16_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)

Definition at line 1338 of file dsputil.c.

void ff_avg_pixels16x16_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)

Definition at line 1342 of file dsputil.c.

static void wmv2_mspel8_h_lowpass ( uint8_t dst,
uint8_t src,
int  dstStride,
int  srcStride,
int  h 
)
static
static void wmv2_mspel8_v_lowpass ( uint8_t dst,
uint8_t src,
int  dstStride,
int  srcStride,
int  w 
)
static
static void put_mspel8_mc10_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1465 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc20_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1472 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc30_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1477 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc02_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1484 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc12_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1489 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc32_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1499 of file dsputil.c.

Referenced by ff_dsputil_init().

static void put_mspel8_mc22_c ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride 
)
static

Definition at line 1509 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs16_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
inlinestatic

Definition at line 1516 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs16_x2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1544 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs16_y2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1572 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs16_xy2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1602 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs8_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
inlinestatic

Definition at line 1632 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs8_x2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1652 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs8_y2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1672 of file dsputil.c.

Referenced by ff_dsputil_init().

static int pix_abs8_xy2_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)
static

Definition at line 1694 of file dsputil.c.

Referenced by ff_dsputil_init().

static int nsse16_c ( void v,
uint8_t s1,
uint8_t s2,
int  stride,
int  h 
)
static

Definition at line 1716 of file dsputil.c.

Referenced by ff_dsputil_init().

static int nsse8_c ( void v,
uint8_t s1,
uint8_t s2,
int  stride,
int  h 
)
static

Definition at line 1742 of file dsputil.c.

Referenced by ff_dsputil_init().

static int try_8x8basis_c ( int16_t  rem[64],
int16_t  weight[64],
int16_t  basis[64],
int  scale 
)
static

Definition at line 1768 of file dsputil.c.

Referenced by ff_dsputil_init().

static void add_8x8basis_c ( int16_t  rem[64],
int16_t  basis[64],
int  scale 
)
static

Definition at line 1783 of file dsputil.c.

Referenced by ff_dsputil_init().

static int zero_cmp ( void s,
uint8_t a,
uint8_t b,
int  stride,
int  h 
)
static

Definition at line 1791 of file dsputil.c.

Referenced by ff_set_cmp().

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

Definition at line 1795 of file dsputil.c.

Referenced by encode_init(), ff_dvvideo_init(), ff_init_me(), and ff_MPV_encode_init().

static void add_bytes_c ( uint8_t dst,
uint8_t src,
int  w 
)
static

Definition at line 1855 of file dsputil.c.

Referenced by ff_dsputil_init().

static void diff_bytes_c ( uint8_t dst,
const uint8_t src1,
const uint8_t src2,
int  w 
)
static

Definition at line 1866 of file dsputil.c.

Referenced by ff_dsputil_init().

static void add_hfyu_median_prediction_c ( uint8_t dst,
const uint8_t src1,
const uint8_t diff,
int  w,
int *  left,
int *  left_top 
)
static

Definition at line 1891 of file dsputil.c.

Referenced by ff_dsputil_init().

static void sub_hfyu_median_prediction_c ( uint8_t dst,
const uint8_t src1,
const uint8_t src2,
int  w,
int *  left,
int *  left_top 
)
static

Definition at line 1908 of file dsputil.c.

Referenced by ff_dsputil_init().

static int add_hfyu_left_prediction_c ( uint8_t dst,
const uint8_t src,
int  w,
int  acc 
)
static

Definition at line 1926 of file dsputil.c.

Referenced by ff_dsputil_init().

static void add_hfyu_left_prediction_bgr32_c ( uint8_t dst,
const uint8_t src,
int  w,
int *  red,
int *  green,
int *  blue,
int *  alpha 
)
static

Definition at line 1956 of file dsputil.c.

Referenced by ff_dsputil_init().

static int hadamard8_diff8x8_c ( void s,
uint8_t dst,
uint8_t src,
int  stride,
int  h 
)
static

Definition at line 2001 of file dsputil.c.

static int hadamard8_intra8x8_c ( void s,
uint8_t src,
uint8_t dummy,
int  stride,
int  h 
)
static

Definition at line 2046 of file dsputil.c.

Referenced by ff_dsputil_init().

static int dct_sad8x8_c ( void c,
uint8_t src1,
uint8_t src2,
int  stride,
int  h 
)
static

Definition at line 2094 of file dsputil.c.

static int dct_max8x8_c ( void c,
uint8_t src1,
uint8_t src2,
int  stride,
int  h 
)
static

Definition at line 2158 of file dsputil.c.

static int quant_psnr8x8_c ( void c,
uint8_t src1,
uint8_t src2,
int  stride,
int  h 
)
static

Definition at line 2174 of file dsputil.c.

static int rd8x8_c ( void c,
uint8_t src1,
uint8_t src2,
int  stride,
int  h 
)
static

Definition at line 2197 of file dsputil.c.

static int bit8x8_c ( void c,
uint8_t src1,
uint8_t src2,
int  stride,
int  h 
)
static

Definition at line 2273 of file dsputil.c.

static int vsad16_c ( void c,
uint8_t s1,
uint8_t s2,
int  stride,
int  h 
)
static

Definition at line 2350 of file dsputil.c.

Referenced by ff_dsputil_init().

static int vsse16_c ( void c,
uint8_t s1,
uint8_t s2,
int  stride,
int  h 
)
static

Definition at line 2384 of file dsputil.c.

Referenced by ff_dsputil_init().

static int ssd_int8_vs_int16_c ( const int8_t *  pix1,
const int16_t *  pix2,
int  size 
)
static

Definition at line 2399 of file dsputil.c.

Referenced by ff_dsputil_init().

static uint32_t clipf_c_one ( uint32_t  a,
uint32_t  mini,
uint32_t  maxi,
uint32_t  maxisign 
)
inlinestatic

Definition at line 2433 of file dsputil.c.

Referenced by vector_clipf_c_opposite_sign().

static void vector_clipf_c_opposite_sign ( float *  dst,
const float *  src,
float *  min,
float *  max,
int  len 
)
static

Definition at line 2442 of file dsputil.c.

Referenced by vector_clipf_c().

static void vector_clipf_c ( float *  dst,
const float *  src,
float  min,
float  max,
int  len 
)
static

Definition at line 2460 of file dsputil.c.

Referenced by ff_dsputil_init().

static int32_t scalarproduct_int16_c ( const int16_t *  v1,
const int16_t *  v2,
int  order 
)
static

Definition at line 2478 of file dsputil.c.

Referenced by ff_dsputil_init().

static int32_t scalarproduct_and_madd_int16_c ( int16_t *  v1,
const int16_t *  v2,
const int16_t *  v3,
int  order,
int  mul 
)
static

Definition at line 2488 of file dsputil.c.

Referenced by ff_dsputil_init().

static void vector_clip_int32_c ( int32_t dst,
const int32_t src,
int32_t  min,
int32_t  max,
unsigned int  len 
)
static

Definition at line 2498 of file dsputil.c.

Referenced by ff_dsputil_init().

static void jref_idct_put ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2514 of file dsputil.c.

Referenced by ff_dsputil_init().

static void jref_idct_add ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2519 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct4_put ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2525 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct4_add ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2530 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct2_put ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2536 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct2_add ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2541 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct1_put ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2547 of file dsputil.c.

Referenced by ff_dsputil_init().

static void ff_jref_idct1_add ( uint8_t dest,
int  line_size,
int16_t *  block 
)
static

Definition at line 2551 of file dsputil.c.

Referenced by ff_dsputil_init().

av_cold void ff_dsputil_static_init ( void  )

Definition at line 2557 of file dsputil.c.

Referenced by avcodec_init().

int ff_check_alignment ( void  )

Definition at line 2566 of file dsputil.c.

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

av_cold void ff_dsputil_init ( DSPContext c,
AVCodecContext avctx 
)
av_cold void dsputil_init ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 2844 of file dsputil.c.

av_cold void avpriv_dsputil_init ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 2849 of file dsputil.c.

Referenced by config_input(), config_props(), and init().

Variable Documentation

uint32_t ff_squareTbl[512] = {0, }

Definition at line 46 of file dsputil.c.

Referenced by ff_dsputil_static_init(), pix_norm1(), pix_norm1_c(), sse(), sse16_c(), sse4_c(), and sse8_c().

const uint8_t ff_zigzag248_direct[64]
Initial value:
= {
0, 8, 1, 9, 16, 24, 2, 10,
17, 25, 32, 40, 48, 56, 33, 41,
18, 26, 3, 11, 4, 12, 19, 27,
34, 42, 49, 57, 50, 58, 35, 43,
20, 28, 5, 13, 6, 14, 21, 29,
36, 44, 51, 59, 52, 60, 37, 45,
22, 30, 7, 15, 23, 31, 38, 46,
53, 61, 54, 62, 39, 47, 55, 63,
}

Definition at line 61 of file dsputil.c.

Referenced by dv_init_enc_block(), and ff_dvvideo_init().

const uint8_t ff_alternate_horizontal_scan[64]
Initial value:
= {
0, 1, 2, 3, 8, 9, 16, 17,
10, 11, 4, 5, 6, 7, 15, 14,
13, 12, 19, 18, 24, 25, 32, 33,
26, 27, 20, 21, 22, 23, 28, 29,
30, 31, 34, 35, 40, 41, 48, 49,
42, 43, 36, 37, 38, 39, 44, 45,
46, 47, 50, 51, 56, 57, 58, 59,
52, 53, 54, 55, 60, 61, 62, 63,
}

Definition at line 72 of file dsputil.c.

Referenced by decode_vop_header(), and ff_dct_common_init().

const uint8_t ff_alternate_vertical_scan[64]
Initial value:
= {
0, 8, 16, 24, 1, 9, 2, 10,
17, 25, 32, 40, 48, 56, 57, 49,
41, 33, 26, 18, 3, 11, 4, 12,
19, 27, 34, 42, 50, 58, 35, 43,
51, 59, 20, 28, 5, 13, 6, 14,
21, 29, 36, 44, 52, 60, 37, 45,
53, 61, 22, 30, 7, 15, 23, 31,
38, 46, 54, 62, 39, 47, 55, 63,
}

Definition at line 83 of file dsputil.c.

Referenced by decode_vop_header(), ff_dct_common_init(), and mpeg_decode_picture_coding_extension().

const uint8_t simple_mmx_permutation[64]
static
Initial value:
={
0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D,
0x10, 0x18, 0x14, 0x19, 0x11, 0x1C, 0x15, 0x1D,
0x20, 0x28, 0x24, 0x29, 0x21, 0x2C, 0x25, 0x2D,
0x12, 0x1A, 0x16, 0x1B, 0x13, 0x1E, 0x17, 0x1F,
0x02, 0x0A, 0x06, 0x0B, 0x03, 0x0E, 0x07, 0x0F,
0x30, 0x38, 0x34, 0x39, 0x31, 0x3C, 0x35, 0x3D,
0x22, 0x2A, 0x26, 0x2B, 0x23, 0x2E, 0x27, 0x2F,
0x32, 0x3A, 0x36, 0x3B, 0x33, 0x3E, 0x37, 0x3F,
}

Definition at line 95 of file dsputil.c.

Referenced by ff_init_scantable_permutation().

const uint8_t idct_sse2_row_perm[8] = {0, 4, 1, 5, 2, 6, 3, 7}
static

Definition at line 106 of file dsputil.c.

Referenced by ff_init_scantable_permutation().