dsputil.c File Reference

#include "avcodec.h"
#include "dsputil.h"
#include "simple_idct.h"
#include "faandct.h"
#include "faanidct.h"
#include "h263.h"
#include "snow.h"

Go to the source code of this file.

Defines

#define pb_7f   (~0UL/255 * 0x7f)
#define pb_80   (~0UL/255 * 0x80)
#define PIXOP2(OPNAME, OP)
#define op_avg(a, b)   a = rnd_avg32(a, b)
#define op_put(a, b)   a = b
#define avg2(a, b)   ((a+b+1)>>1)
#define avg4(a, b, c, d)   ((a+b+c+d+2)>>2)
#define H264_CHROMA_MC(OPNAME, OP)
#define op_avg(a, b)   a = (((a)+(((b) + 32)>>6)+1)>>1)
#define op_put(a, b)   a = (((b) + 32)>>6)
#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 H264_LOWPASS(OPNAME, OP, OP2)
#define H264_MC(OPNAME, SIZE)
#define op_avg(a, b)   a = (((a)+cm[((b) + 16)>>5]+1)>>1)
#define op_put(a, b)   a = cm[((b) + 16)>>5]
#define op2_avg(a, b)   a = (((a)+cm[((b) + 512)>>10]+1)>>1)
#define op2_put(a, b)   a = cm[((b) + 512)>>10]
#define op_scale1(x)   block[x] = av_clip_uint8( (block[x]*weight + offset) >> log2_denom )
#define op_scale2(x)   dst[x] = av_clip_uint8( (src[x]*weights + dst[x]*weightd + offset) >> (log2_denom+1))
#define H264_WEIGHT(W, H)
#define BUTTERFLY2(o1, o2, i1, i2)
#define BUTTERFLY1(x, y)
#define BUTTERFLYA(x, y)   (FFABS((x)+(y)) + FFABS((x)-(y)))
#define SQ(a)   ((a)*(a))
#define W0   2048
#define W1   2841
#define W2   2676
#define W3   2408
#define W4   2048
#define W5   1609
#define W6   1108
#define W7   565
#define dspfunc(PFX, IDX, NUM)
#define dspfunc(PFX, IDX, NUM)
#define SET_CMP_FUNC(name)

Functions

void ff_spatial_dwt (int *buffer, int width, int height, int stride, int type, int decomposition_count)
void vorbis_inverse_coupling (float *mag, float *ang, int blocksize)
void ff_flac_compute_autocorr (const int32_t *data, int len, int lag, double *autoc)
void ff_add_png_paeth_prediction (uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp)
 DECLARE_ALIGNED_8 (uint16_t, inv_zigzag_direct16[64])
void ff_init_scantable (uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
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 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 draw_edges_c (uint8_t *buf, int wrap, int width, int height, int w)
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)
static void get_pixels_c (DCTELEM *restrict block, const uint8_t *pixels, int line_size)
static void diff_pixels_c (DCTELEM *restrict block, const uint8_t *s1, const uint8_t *s2, int stride)
static void put_pixels_clamped_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void put_pixels_clamped4_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void put_pixels_clamped2_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void put_signed_pixels_clamped_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void add_pixels_clamped_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void add_pixels_clamped4_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void add_pixels_clamped2_c (const DCTELEM *block, uint8_t *restrict pixels, int line_size)
static void add_pixels8_c (uint8_t *restrict pixels, DCTELEM *block, int line_size)
static void add_pixels4_c (uint8_t *restrict pixels, DCTELEM *block, int line_size)
static int sum_abs_dctelem_c (DCTELEM *block)
static void put_no_rnd_pixels16_l2_c (uint8_t *dst, const uint8_t *a, const uint8_t *b, int stride, int h)
static void put_no_rnd_pixels8_l2_c (uint8_t *dst, const uint8_t *a, const uint8_t *b, int stride, 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)
static void put_no_rnd_h264_chroma_mc8_c (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
static void wmv2_mspel8_h_lowpass (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
void ff_intrax8dsp_init (DSPContext *c, AVCodecContext *avctx)
void ff_h264dspenc_init (DSPContext *c, AVCodecContext *avctx)
static void wmv2_mspel8_v_lowpass (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int w)
static void put_mspel8_mc00_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc10_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc20_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc30_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc02_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc12_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc32_c (uint8_t *dst, uint8_t *src, int stride)
static void put_mspel8_mc22_c (uint8_t *dst, uint8_t *src, int stride)
static void h263_v_loop_filter_c (uint8_t *src, int stride, int qscale)
static void h263_h_loop_filter_c (uint8_t *src, int stride, int qscale)
static void h261_loop_filter_c (uint8_t *src, int stride)
static void h264_loop_filter_luma_c (uint8_t *pix, int xstride, int ystride, int alpha, int beta, int8_t *tc0)
static void h264_v_loop_filter_luma_c (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
static void h264_h_loop_filter_luma_c (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
static void h264_loop_filter_chroma_c (uint8_t *pix, int xstride, int ystride, int alpha, int beta, int8_t *tc0)
static void h264_v_loop_filter_chroma_c (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
static void h264_h_loop_filter_chroma_c (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
static void h264_loop_filter_chroma_intra_c (uint8_t *pix, int xstride, int ystride, int alpha, int beta)
static void h264_v_loop_filter_chroma_intra_c (uint8_t *pix, int stride, int alpha, int beta)
static void h264_h_loop_filter_chroma_intra_c (uint8_t *pix, int stride, int alpha, int beta)
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)
void ff_block_permute (DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last)
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 clear_blocks_c (DCTELEM *blocks)
static void add_bytes_c (uint8_t *dst, uint8_t *src, int w)
static void add_bytes_l2_c (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
static void diff_bytes_c (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
static void sub_hfyu_median_prediction_c (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top)
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 vsad_intra16_c (void *c, uint8_t *s, uint8_t *dummy, int stride, int h)
static int vsad16_c (void *c, uint8_t *s1, uint8_t *s2, int stride, int h)
static int vsse_intra16_c (void *c, uint8_t *s, uint8_t *dummy, 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 void vector_fmul_c (float *dst, const float *src, int len)
static void vector_fmul_reverse_c (float *dst, const float *src0, const float *src1, int len)
void ff_vector_fmul_add_add_c (float *dst, const float *src0, const float *src1, const float *src2, int src3, int len, int step)
void ff_vector_fmul_window_c (float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len)
static av_always_inline int float_to_int16_one (const float *src)
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)
static void add_int16_c (int16_t *v1, int16_t *v2, int order)
static void sub_int16_c (int16_t *v1, int16_t *v2, int order)
static int32_t scalarproduct_int16_c (int16_t *v1, int16_t *v2, int order, int shift)
static void wmv2_idct_row (short *b)
static void wmv2_idct_col (short *b)
void ff_wmv2_idct_c (short *block)
static void ff_wmv2_idct_put_c (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_wmv2_idct_add_c (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct_put (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct_add (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct4_put (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct4_add (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct2_put (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct2_add (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct1_put (uint8_t *dest, int line_size, DCTELEM *block)
static void ff_jref_idct1_add (uint8_t *dest, int line_size, DCTELEM *block)
static void just_return (void *mem av_unused, int stride av_unused, int h av_unused)
void dsputil_static_init (void)
int ff_check_alignment (void)
void dsputil_init (DSPContext *c, AVCodecContext *avctx)

Variables

uint8_t ff_cropTbl [256+2 *MAX_NEG_CROP] = {0, }
uint32_t ff_squareTbl [512] = {0, }
const uint8_t ff_zigzag_direct [64]
const uint8_t ff_zigzag248_direct [64]
const uint8_t ff_alternate_horizontal_scan [64]
const uint8_t ff_alternate_vertical_scan [64]
const uint32_t ff_inverse [256]
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.


Define Documentation

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

Definition at line 1259 of file dsputil.c.

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

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

Definition at line 1260 of file dsputil.c.

Referenced by pix_abs16_xy2_c(), pix_abs16x16_xy2_mvi(), and pix_abs8_xy2_c().

#define BUTTERFLY1 ( x,
 ) 

Value:

{\
    int a,b;\
    a= x;\
    b= y;\
    x= a+b;\
    y= a-b;\
}

Definition at line 3477 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_c().

#define BUTTERFLY2 ( o1,
o2,
i1,
i2   ) 

Value:

o1= (i1)+(i2);\
o2= (i1)-(i2);

Definition at line 3473 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_c().

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

Definition at line 3486 of file dsputil.c.

Referenced by hadamard8_diff8x8_c(), and hadamard8_intra8x8_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 dspfunc ( PFX,
IDX,
NUM   ) 

Value:

c->PFX ## _pixels_tab[IDX][0] = PFX ## _pixels ## NUM ## _c;     \
    c->PFX ## _pixels_tab[IDX][1] = PFX ## _pixels ## NUM ## _x2_c;  \
    c->PFX ## _pixels_tab[IDX][2] = PFX ## _pixels ## NUM ## _y2_c;  \
    c->PFX ## _pixels_tab[IDX][3] = PFX ## _pixels ## NUM ## _xy2_c

#define H264_CHROMA_MC ( OPNAME,
OP   ) 

Definition at line 1566 of file dsputil.c.

#define H264_LOWPASS ( OPNAME,
OP,
OP2   ) 

Definition at line 2197 of file dsputil.c.

#define H264_MC ( OPNAME,
SIZE   ) 

Definition at line 2461 of file dsputil.c.

#define H264_WEIGHT ( W,
 ) 

Definition at line 2622 of file dsputil.c.

#define op2_avg ( a,
 )     a = (((a)+cm[((b) + 512)>>10]+1)>>1)

Definition at line 2601 of file dsputil.c.

#define op2_put ( a,
 )     a = cm[((b) + 512)>>10]

Definition at line 2602 of file dsputil.c.

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

Definition at line 2598 of file dsputil.c.

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

Definition at line 2598 of file dsputil.c.

#define op_avg ( a,
 )     a = (((a)+(((b) + 32)>>6)+1)>>1)

Definition at line 2598 of file dsputil.c.

#define op_avg ( a,
 )     a = rnd_avg32(a, b)

Definition at line 2598 of file dsputil.c.

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

Definition at line 2183 of file dsputil.c.

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

Definition at line 2600 of file dsputil.c.

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

Definition at line 2600 of file dsputil.c.

#define op_put ( a,
 )     a = (((b) + 32)>>6)

Definition at line 2600 of file dsputil.c.

#define op_put ( a,
 )     a = b

Definition at line 2600 of file dsputil.c.

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

Definition at line 2185 of file dsputil.c.

#define op_scale1 (  )     block[x] = av_clip_uint8( (block[x]*weight + offset) >> log2_denom )

Definition at line 2620 of file dsputil.c.

#define op_scale2 (  )     dst[x] = av_clip_uint8( (src[x]*weights + dst[x]*weightd + offset) >> (log2_denom+1))

Definition at line 2621 of file dsputil.c.

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

Definition at line 54 of file dsputil.c.

Referenced by add_bytes_c(), add_bytes_l2_c(), and diff_bytes_c().

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

Definition at line 55 of file dsputil.c.

Referenced by add_bytes_c(), add_bytes_l2_c(), and diff_bytes_c().

#define PIXOP2 ( OPNAME,
OP   ) 

Definition at line 884 of file dsputil.c.

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

Definition at line 1699 of file dsputil.c.

#define SET_CMP_FUNC ( name   ) 

Value:

c->name[0]= name ## 16_c;\
    c->name[1]= name ## 8x8_c;

Referenced by dsputil_init().

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

Definition at line 3863 of file dsputil.c.

Referenced by vsse16_c(), and vsse_intra16_c().

#define W0   2048

Definition at line 4001 of file dsputil.c.

Referenced by wmv2_idct_col(), and wmv2_idct_row().

#define W1   2841

Definition at line 4002 of file dsputil.c.

#define W2   2676

Definition at line 4003 of file dsputil.c.

#define W3   2408

Definition at line 4004 of file dsputil.c.

#define W4   2048

Definition at line 4005 of file dsputil.c.

#define W5   1609

Definition at line 4006 of file dsputil.c.

#define W6   1108

Definition at line 4007 of file dsputil.c.

#define W7   565

Definition at line 4008 of file dsputil.c.


Function Documentation

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

Definition at line 3299 of file dsputil.c.

References BASIS_SHIFT, and RECON_SHIFT.

Referenced by dsputil_init().

03299                                                                          {
03300     int i;
03301 
03302     for(i=0; i<8*8; i++){
03303         rem[i] += (basis[i]*scale + (1<<(BASIS_SHIFT - RECON_SHIFT-1)))>>(BASIS_SHIFT - RECON_SHIFT);
03304     }
03305 }

static void add_bytes_c ( uint8_t *  dst,
uint8_t *  src,
int  w 
) [static]

Definition at line 3408 of file dsputil.c.

References pb_7f, and pb_80.

Referenced by dsputil_init().

03408                                                           {
03409     long i;
03410     for(i=0; i<=w-sizeof(long); i+=sizeof(long)){
03411         long a = *(long*)(src+i);
03412         long b = *(long*)(dst+i);
03413         *(long*)(dst+i) = ((a&pb_7f) + (b&pb_7f)) ^ ((a^b)&pb_80);
03414     }
03415     for(; i<w; i++)
03416         dst[i+0] += src[i+0];
03417 }

static void add_bytes_l2_c ( uint8_t *  dst,
uint8_t *  src1,
uint8_t *  src2,
int  w 
) [static]

Definition at line 3419 of file dsputil.c.

References pb_7f, and pb_80.

Referenced by dsputil_init().

03419                                                                              {
03420     long i;
03421     for(i=0; i<=w-sizeof(long); i+=sizeof(long)){
03422         long a = *(long*)(src1+i);
03423         long b = *(long*)(src2+i);
03424         *(long*)(dst+i) = ((a&pb_7f) + (b&pb_7f)) ^ ((a^b)&pb_80);
03425     }
03426     for(; i<w; i++)
03427         dst[i] = src1[i]+src2[i];
03428 }

static void add_int16_c ( int16_t *  v1,
int16_t *  v2,
int  order 
) [static]

Definition at line 3979 of file dsputil.c.

Referenced by dsputil_init().

03980 {
03981     while (order--)
03982        *v1++ += *v2++;
03983 }

static void add_pixels4_c ( uint8_t *restrict  pixels,
DCTELEM block,
int  line_size 
) [static]

Definition at line 719 of file dsputil.c.

Referenced by dsputil_init().

00720 {
00721     int i;
00722     for(i=0;i<4;i++) {
00723         pixels[0] += block[0];
00724         pixels[1] += block[1];
00725         pixels[2] += block[2];
00726         pixels[3] += block[3];
00727         pixels += line_size;
00728         block += 4;
00729     }
00730 }

static void add_pixels8_c ( uint8_t *restrict  pixels,
DCTELEM block,
int  line_size 
) [static]

Definition at line 702 of file dsputil.c.

Referenced by dsputil_init().

00703 {
00704     int i;
00705     for(i=0;i<8;i++) {
00706         pixels[0] += block[0];
00707         pixels[1] += block[1];
00708         pixels[2] += block[2];
00709         pixels[3] += block[3];
00710         pixels[4] += block[4];
00711         pixels[5] += block[5];
00712         pixels[6] += block[6];
00713         pixels[7] += block[7];
00714         pixels += line_size;
00715         block += 8;
00716     }
00717 }

static void add_pixels_clamped2_c ( const DCTELEM block,
uint8_t *restrict  pixels,
int  line_size 
) [static]

Definition at line 687 of file dsputil.c.

References cm, ff_cropTbl, and MAX_NEG_CROP.

Referenced by ff_jref_idct2_add().

00689 {
00690     int i;
00691     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
00692 
00693     /* read the pixels */
00694     for(i=0;i<2;i++) {
00695         pixels[0] = cm[pixels[0] + block[0]];
00696         pixels[1] = cm[pixels[1] + block[1]];
00697         pixels += line_size;
00698         block += 8;
00699     }
00700 }

static void add_pixels_clamped4_c ( const DCTELEM block,
uint8_t *restrict  pixels,
int  line_size 
) [static]

Definition at line 670 of file dsputil.c.

References cm, ff_cropTbl, and MAX_NEG_CROP.

Referenced by ff_jref_idct4_add().

00672 {
00673     int i;
00674     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
00675 
00676     /* read the pixels */
00677     for(i=0;i<4;i++) {
00678         pixels[0] = cm[pixels[0] + block[0]];
00679         pixels[1] = cm[pixels[1] + block[1]];
00680         pixels[2] = cm[pixels[2] + block[2]];
00681         pixels[3] = cm[pixels[3] + block[3]];
00682         pixels += line_size;
00683         block += 8;
00684     }
00685 }

static void add_pixels_clamped_c ( const DCTELEM block,
uint8_t *restrict  pixels,
int  line_size 
) [static]

Definition at line 649 of file dsputil.c.

References cm, ff_cropTbl, and MAX_NEG_CROP.

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

00651 {
00652     int i;
00653     uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
00654 
00655     /* read the pixels */
00656     for(i=0;i<8;i++) {
00657         pixels[0] = cm[pixels[0] + block[0]];
00658         pixels[1] = cm[pixels[1] + block[1]];
00659         pixels[2] = cm[pixels[2] + block[2]];
00660         pixels[3]