#include "avcodec.h"
#include "dsputil.h"
#include "rv34dsp.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 int 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 int 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 int 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 int stride, const int alpha, const int lims, const int dmode, const int chroma) |
static void | rv40_h_strong_loop_filter (uint8_t *src, const int stride, const int alpha, const int lims, const int dmode, const int chroma) |
static void | rv40_v_strong_loop_filter (uint8_t *src, const int 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, int stride, int beta, int beta2, int edge, int *p1, int *q1) |
static int | rv40_h_loop_filter_strength (uint8_t *src, int stride, int beta, int beta2, int edge, int *p1, int *q1) |
static int | rv40_v_loop_filter_strength (uint8_t *src, int 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_ ## size (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, int 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;\ }\ }
av_cold void ff_rv40dsp_init | ( | RV34DSPContext * | c, | |
DSPContext * | dsp | |||
) |
static int rv40_h_loop_filter_strength | ( | uint8_t * | src, | |
int | stride, | |||
int | beta, | |||
int | beta2, | |||
int | edge, | |||
int * | p1, | |||
int * | q1 | |||
) | [static] |
static void rv40_h_strong_loop_filter | ( | uint8_t * | src, | |
const int | stride, | |||
const int | alpha, | |||
const int | lims, | |||
const int | dmode, | |||
const int | chroma | |||
) | [static] |
static void rv40_h_weak_loop_filter | ( | uint8_t * | src, | |
const int | 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] |
static av_always_inline int rv40_loop_filter_strength | ( | uint8_t * | src, | |
int | step, | |||
int | stride, | |||
int | beta, | |||
int | beta2, | |||
int | edge, | |||
int * | p1, | |||
int * | q1 | |||
) | [static] |
Definition at line 457 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 int | stride, | |||
const int | alpha, | |||
const int | lims, | |||
const int | dmode, | |||
const int | chroma | |||
) | [static] |
Definition at line 385 of file rv40dsp.c.
Referenced by rv40_h_strong_loop_filter(), and rv40_v_strong_loop_filter().
static int rv40_v_loop_filter_strength | ( | uint8_t * | src, | |
int | stride, | |||
int | beta, | |||
int | beta2, | |||
int | edge, | |||
int * | p1, | |||
int * | q1 | |||
) | [static] |
static void rv40_v_strong_loop_filter | ( | uint8_t * | src, | |
const int | stride, | |||
const int | alpha, | |||
const int | lims, | |||
const int | dmode, | |||
const int | chroma | |||
) | [static] |
static void rv40_v_weak_loop_filter | ( | uint8_t * | src, | |
const int | 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] |
static av_always_inline void rv40_weak_loop_filter | ( | uint8_t * | src, | |
const int | step, | |||
const int | 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 317 of file rv40dsp.c.
Referenced by rv40_h_weak_loop_filter(), and rv40_v_weak_loop_filter().
const int rv40_bias[4][4] [static] |
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 300 of file rv40dsp.c.
Referenced by rv40_strong_loop_filter().
const uint8_t rv40_dither_r[16] [static] |