#include "dsputil.h"
#include "diracdsp.h"
#include "libavcodec/x86/diracdsp_mmx.h"
Go to the source code of this file.
Defines | |
#define | FILTER(src, stride) |
#define | PIXOP_BILINEAR(PFX, OP, WIDTH) |
#define | OP_PUT(dst, val) (dst) = (val) |
#define | OP_AVG(dst, val) (dst) = (((dst) + (val) + 1)>>1) |
#define | op_scale1(x) block[x] = av_clip_uint8( (block[x]*weight + (1<<(log2_denom-1))) >> log2_denom) |
#define | op_scale2(x) dst[x] = av_clip_uint8( (src[x]*weights + dst[x]*weightd + (1<<(log2_denom-1))) >> log2_denom) |
#define | DIRAC_WEIGHT(W) |
#define | ADD_OBMC(xblen) |
#define | PIXFUNC(PFX, WIDTH) |
Functions | |
static void | dirac_hpel_filter (uint8_t *dsth, uint8_t *dstv, uint8_t *dstc, uint8_t *src, int stride, int width, int height) |
static void | put_signed_rect_clamped_c (uint8_t *dst, int dst_stride, const int16_t *src, int src_stride, int width, int height) |
static void | add_rect_clamped_c (uint8_t *dst, const uint16_t *src, int stride, const int16_t *idwt, int idwt_stride, int width, int height) |
void | ff_diracdsp_init (DiracDSPContext *c) |
#define ADD_OBMC | ( | xblen | ) |
Value:
static void add_obmc ## xblen ## _c(uint16_t *dst, const uint8_t *src, int stride, \ const uint8_t *obmc_weight, int yblen) \ { \ int x; \ while (yblen--) { \ for (x = 0; x < xblen; x += 2) { \ dst[x ] += src[x ] * obmc_weight[x ]; \ dst[x+1] += src[x+1] * obmc_weight[x+1]; \ } \ dst += stride; \ src += stride; \ obmc_weight += 32; \ } \ }
Definition at line 118 of file diracdsp.c.
#define DIRAC_WEIGHT | ( | W | ) |
Value:
static void weight_dirac_pixels ## W ## _c(uint8_t *block, int stride, int log2_denom, \ int weight, int h) { \ int x; \ while (h--) { \ for (x = 0; x < W; x++) { \ op_scale1(x); \ op_scale1(x+1); \ } \ block += stride; \ } \ } \ static void biweight_dirac_pixels ## W ## _c(uint8_t *dst, uint8_t *src, int stride, int log2_denom, \ int weightd, int weights, int h) { \ int x; \ while (h--) { \ for (x = 0; x < W; x++) { \ op_scale2(x); \ op_scale2(x+1); \ } \ dst += stride; \ src += stride; \ } \ }
Definition at line 89 of file diracdsp.c.
#define FILTER | ( | src, | |||
stride | ) |
Value:
((21*((src)[ 0*stride] + (src)[1*stride]) \ -7*((src)[-1*stride] + (src)[2*stride]) \ +3*((src)[-2*stride] + (src)[3*stride]) \ -1*((src)[-3*stride] + (src)[4*stride]) + 16) >> 5)
Definition at line 25 of file diracdsp.c.
Referenced by dirac_hpel_filter(), ff_yadif_filter_line_TMPL(), filter_line_c(), filter_line_c_16bit(), and h264_filter_mb_fast_internal().
Definition at line 77 of file diracdsp.c.
Referenced by pixels16(), pixels4(), pixels8(), and png_filter_row().
Definition at line 76 of file diracdsp.c.
#define op_scale1 | ( | x | ) | block[x] = av_clip_uint8( (block[x]*weight + (1<<(log2_denom-1))) >> log2_denom) |
Definition at line 86 of file diracdsp.c.
#define op_scale2 | ( | x | ) | dst[x] = av_clip_uint8( (src[x]*weights + dst[x]*weightd + (1<<(log2_denom-1))) >> log2_denom) |
Definition at line 87 of file diracdsp.c.
#define PIXFUNC | ( | PFX, | |||
WIDTH | ) |
Value:
c->PFX ## _dirac_pixels_tab[WIDTH>>4][0] = ff_ ## PFX ## _dirac_pixels ## WIDTH ## _c; \ c->PFX ## _dirac_pixels_tab[WIDTH>>4][1] = ff_ ## PFX ## _dirac_pixels ## WIDTH ## _l2_c; \ c->PFX ## _dirac_pixels_tab[WIDTH>>4][2] = ff_ ## PFX ## _dirac_pixels ## WIDTH ## _l4_c; \ c->PFX ## _dirac_pixels_tab[WIDTH>>4][3] = ff_ ## PFX ## _dirac_pixels ## WIDTH ## _bilinear_c
Definition at line 170 of file diracdsp.c.
Referenced by ff_diracdsp_init(), and ff_diracdsp_init_mmx().
#define PIXOP_BILINEAR | ( | PFX, | |||
OP, | |||||
WIDTH | ) |
Value:
static void ff_ ## PFX ## _dirac_pixels ## WIDTH ## _bilinear_c(uint8_t *dst, const uint8_t *src[5], int stride, int h) \ { \ int x; \ const uint8_t *s0 = src[0]; \ const uint8_t *s1 = src[1]; \ const uint8_t *s2 = src[2]; \ const uint8_t *s3 = src[3]; \ const uint8_t *w = src[4]; \ \ while (h--) { \ for (x = 0; x < WIDTH; x++) { \ OP(dst[x], (s0[x]*w[0] + s1[x]*w[1] + s2[x]*w[2] + s3[x]*w[3] + 8) >> 4); \ } \ \ dst += stride; \ s0 += stride; \ s1 += stride; \ s2 += stride; \ s3 += stride; \ } \ }
Definition at line 53 of file diracdsp.c.
static void add_rect_clamped_c | ( | uint8_t * | dst, | |
const uint16_t * | src, | |||
int | stride, | |||
const int16_t * | idwt, | |||
int | idwt_stride, | |||
int | width, | |||
int | height | |||
) | [static] |
static void dirac_hpel_filter | ( | uint8_t * | dsth, | |
uint8_t * | dstv, | |||
uint8_t * | dstc, | |||
uint8_t * | src, | |||
int | stride, | |||
int | width, | |||
int | height | |||
) | [static] |
void ff_diracdsp_init | ( | DiracDSPContext * | c | ) |
static void put_signed_rect_clamped_c | ( | uint8_t * | dst, | |
int | dst_stride, | |||
const int16_t * | src, | |||
int | src_stride, | |||
int | width, | |||
int | height | |||
) | [static] |