#include "avcodec.h"
#include "dsputil.h"
#include "rv34dsp.h"
#include "libavutil/avassert.h"
#include "libavutil/common.h"
Go to the source code of this file.
Defines | |
#define | RV40_LOWPASS(OPNAME, OP) |
#define | RV40_MC(OPNAME, SIZE) |
#define | op_avg(a, b) a = (((a)+cm[b]+1)>>1) |
#define | op_put(a, b) a = cm[b] |
#define | RV40_CHROMA_MC(OPNAME, OP) |
#define | op_avg(a, b) a = (((a)+((b)>>6)+1)>>1) |
#define | op_put(a, b) a = ((b)>>6) |
#define | RV40_WEIGHT_FUNC(size) |
#define | CLIP_SYMM(a, b) av_clip(a, -(b), b) |
Functions | |
static av_always_inline void | rv40_weak_loop_filter (uint8_t *src, const int step, const ptrdiff_t stride, const int filter_p1, const int filter_q1, const int alpha, const int beta, const int lim_p0q0, const int lim_q1, const int lim_p1) |
weaker deblocking very similar to the one described in 4.4.2 of JVT-A003r1 | |
static void | rv40_h_weak_loop_filter (uint8_t *src, const ptrdiff_t stride, const int filter_p1, const int filter_q1, const int alpha, const int beta, const int lim_p0q0, const int lim_q1, const int lim_p1) |
static void | rv40_v_weak_loop_filter (uint8_t *src, const ptrdiff_t stride, const int filter_p1, const int filter_q1, const int alpha, const int beta, const int lim_p0q0, const int lim_q1, const int lim_p1) |
static av_always_inline void | rv40_strong_loop_filter (uint8_t *src, const int step, const ptrdiff_t stride, const int alpha, const int lims, const int dmode, const int chroma) |
static void | rv40_h_strong_loop_filter (uint8_t *src, const ptrdiff_t stride, const int alpha, const int lims, const int dmode, const int chroma) |
static void | rv40_v_strong_loop_filter (uint8_t *src, const ptrdiff_t stride, const int alpha, const int lims, const int dmode, const int chroma) |
static av_always_inline int | rv40_loop_filter_strength (uint8_t *src, int step, ptrdiff_t stride, int beta, int beta2, int edge, int *p1, int *q1) |
static int | rv40_h_loop_filter_strength (uint8_t *src, ptrdiff_t stride, int beta, int beta2, int edge, int *p1, int *q1) |
static int | rv40_v_loop_filter_strength (uint8_t *src, ptrdiff_t stride, int beta, int beta2, int edge, int *p1, int *q1) |
av_cold void | ff_rv40dsp_init (RV34DSPContext *c, DSPContext *dsp) |
Variables | |
static const int | rv40_bias [4][4] |
static const uint8_t | rv40_dither_l [16] |
dither values for deblocking filter - left/top values | |
static const uint8_t | rv40_dither_r [16] |
dither values for deblocking filter - right/bottom values |
Definition in file rv40dsp.c.
#define CLIP_SYMM | ( | a, | |||
b | ) | av_clip(a, -(b), b) |
#define RV40_WEIGHT_FUNC | ( | size | ) |
Value:
static void rv40_weight_func_rnd_ ## size (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, ptrdiff_t stride)\ {\ int i, j;\ \ for (j = 0; j < size; j++) {\ for (i = 0; i < size; i++)\ dst[i] = (((w2 * src1[i]) >> 9) + ((w1 * src2[i]) >> 9) + 0x10) >> 5;\ src1 += stride;\ src2 += stride;\ dst += stride;\ }\ }\ static void rv40_weight_func_nornd_ ## size (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, ptrdiff_t stride)\ {\ int i, j;\ \ for (j = 0; j < size; j++) {\ for (i = 0; i < size; i++)\ dst[i] = (w2 * src1[i] + w1 * src2[i] + 0x10) >> 5;\ src1 += stride;\ src2 += stride;\ dst += stride;\ }\ }
av_cold void ff_rv40dsp_init | ( | RV34DSPContext * | c, | |
DSPContext * | dsp | |||
) |
static av_always_inline int rv40_loop_filter_strength | ( | uint8_t * | src, | |
int | step, | |||
ptrdiff_t | stride, | |||
int | beta, | |||
int | beta2, | |||
int | edge, | |||
int * | p1, | |||
int * | q1 | |||
) | [static] |
Definition at line 471 of file rv40dsp.c.
Referenced by rv40_h_loop_filter_strength(), and rv40_v_loop_filter_strength().
static av_always_inline void rv40_strong_loop_filter | ( | uint8_t * | src, | |
const int | step, | |||
const ptrdiff_t | stride, | |||
const int | alpha, | |||
const int | lims, | |||
const int | dmode, | |||
const int | chroma | |||
) | [static] |
Definition at line 399 of file rv40dsp.c.
Referenced by rv40_h_strong_loop_filter(), and rv40_v_strong_loop_filter().
static av_always_inline void rv40_weak_loop_filter | ( | uint8_t * | src, | |
const int | step, | |||
const ptrdiff_t | stride, | |||
const int | filter_p1, | |||
const int | filter_q1, | |||
const int | alpha, | |||
const int | beta, | |||
const int | lim_p0q0, | |||
const int | lim_q1, | |||
const int | lim_p1 | |||
) | [static] |
weaker deblocking very similar to the one described in 4.4.2 of JVT-A003r1
Definition at line 331 of file rv40dsp.c.
Referenced by rv40_h_weak_loop_filter(), and rv40_v_weak_loop_filter().
const uint8_t rv40_dither_l[16] [static] |
Initial value:
{ 0x40, 0x50, 0x20, 0x60, 0x30, 0x50, 0x40, 0x30, 0x50, 0x40, 0x50, 0x30, 0x60, 0x20, 0x50, 0x40 }
Definition at line 314 of file rv40dsp.c.
Referenced by rv40_strong_loop_filter().
const uint8_t rv40_dither_r[16] [static] |