Libav
Macros | Functions
hevcdsp_template.c File Reference
#include "get_bits.h"
#include "hevc.h"
#include "bit_depth_template.c"

Go to the source code of this file.

Macros

#define SET(dst, x)   (dst) = (x)
 
#define SCALE(dst, x)   (dst) = av_clip_int16(((x) + add) >> shift)
 
#define TR_4x4_LUMA(dst, src, step, assign)
 
#define TR_4(dst, src, dstep, sstep, assign, end)
 
#define TR_8(dst, src, dstep, sstep, assign, end)
 
#define TR_16(dst, src, dstep, sstep, assign, end)
 
#define TR_32(dst, src, dstep, sstep, assign, end)
 
#define IDCT_VAR4(H)   int limit2 = FFMIN(col_limit + 4, H)
 
#define IDCT_VAR8(H)
 
#define IDCT_VAR16(H)   IDCT_VAR8(H)
 
#define IDCT_VAR32(H)   IDCT_VAR8(H)
 
#define IDCT(H)
 
#define IDCT_DC(H)
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define QPEL_FILTER_1(src, stride)
 
#define QPEL_FILTER_2(src, stride)
 
#define QPEL_FILTER_3(src, stride)
 
#define PUT_HEVC_QPEL_H(H)
 
#define PUT_HEVC_QPEL_V(V)
 
#define PUT_HEVC_QPEL_HV(H, V)
 
#define QPEL(W)
 
#define EPEL_FILTER(src, stride)
 
#define EPEL(W)
 
#define PUT_PRED(w)
 
#define P3   pix[-4 * xstride]
 
#define P2   pix[-3 * xstride]
 
#define P1   pix[-2 * xstride]
 
#define P0   pix[-1 * xstride]
 
#define Q0   pix[0 * xstride]
 
#define Q1   pix[1 * xstride]
 
#define Q2   pix[2 * xstride]
 
#define Q3   pix[3 * xstride]
 
#define TP3   pix[-4 * xstride + 3 * ystride]
 
#define TP2   pix[-3 * xstride + 3 * ystride]
 
#define TP1   pix[-2 * xstride + 3 * ystride]
 
#define TP0   pix[-1 * xstride + 3 * ystride]
 
#define TQ0   pix[0 * xstride + 3 * ystride]
 
#define TQ1   pix[1 * xstride + 3 * ystride]
 
#define TQ2   pix[2 * xstride + 3 * ystride]
 
#define TQ3   pix[3 * xstride + 3 * ystride]
 

Functions

static void FUNC() put_pcm (uint8_t *_dst, ptrdiff_t stride, int size, GetBitContext *gb, int pcm_bit_depth)
 
static av_always_inline void FUNC() add_residual (uint8_t *_dst, int16_t *res, ptrdiff_t stride, int size)
 
static void FUNC() add_residual4x4 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual8x8 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual16x16 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual32x32 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() dequant (int16_t *coeffs)
 
static void FUNC() transform_4x4_luma (int16_t *coeffs)
 
static void FUNC() sao_band_filter (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx, int class)
 
static void FUNC() sao_band_filter_0 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_1 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_2 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_3 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_edge_filter_0 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_1 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_2 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_3 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static av_always_inline void FUNC() put_hevc_qpel_pixels (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_pixels (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_h (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_v (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_hv (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static av_always_inline void FUNC() put_unweighted_pred (uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
 
static av_always_inline void FUNC() put_unweighted_pred_avg (uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
 
static av_always_inline void FUNC() weighted_pred (uint8_t denom, int16_t wlxFlag, int16_t olxFlag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
 
static av_always_inline void FUNC() weighted_pred_avg (uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, int16_t ol0Flag, int16_t ol1Flag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
 
static void FUNC() hevc_loop_filter_luma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int beta, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
static void FUNC() hevc_loop_filter_chroma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
static void FUNC() hevc_h_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_h_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int beta, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int beta, int *tc, uint8_t *no_p, uint8_t *no_q)
 

Macro Definition Documentation

◆ SET

#define SET (   dst,
 
)    (dst) = (x)

Definition at line 100 of file hevcdsp_template.c.

◆ SCALE

#define SCALE (   dst,
 
)    (dst) = av_clip_int16(((x) + add) >> shift)

Definition at line 101 of file hevcdsp_template.c.

Referenced by transform_4x4_luma().

◆ TR_4x4_LUMA

#define TR_4x4_LUMA (   dst,
  src,
  step,
  assign 
)
Value:
do { \
int c0 = src[0 * step] + src[2 * step]; \
int c1 = src[2 * step] + src[3 * step]; \
int c2 = src[0 * step] - src[3 * step]; \
int c3 = 74 * src[1 * step]; \
assign(dst[2 * step], 74 * (src[0 * step] - \
src[2 * step] + \
src[3 * step])); \
assign(dst[0 * step], 29 * c0 + 55 * c1 + c3); \
assign(dst[1 * step], 55 * c2 - 29 * c1 + c3); \
assign(dst[3 * step], 55 * c0 + 29 * c2 - c3); \
} while (0)
#define src
Definition: vp8dsp.c:254
static int step
Definition: avplay.c:247
#define assign(var, type, n)

Definition at line 103 of file hevcdsp_template.c.

Referenced by transform_4x4_luma().

◆ TR_4

#define TR_4 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
const int e0 = transform[8 * 0][0] * src[0 * sstep] + \
transform[8 * 2][0] * src[2 * sstep]; \
const int e1 = transform[8 * 0][1] * src[0 * sstep] + \
transform[8 * 2][1] * src[2 * sstep]; \
const int o0 = transform[8 * 1][0] * src[1 * sstep] + \
transform[8 * 3][0] * src[3 * sstep]; \
const int o1 = transform[8 * 1][1] * src[1 * sstep] + \
transform[8 * 3][1] * src[3 * sstep]; \
assign(dst[0 * dstep], e0 + o0); \
assign(dst[1 * dstep], e1 + o1); \
assign(dst[2 * dstep], e1 - o1); \
assign(dst[3 * dstep], e0 - o0); \
} while (0)
#define src
Definition: vp8dsp.c:254
static const int8_t transform[32][32]
Definition: hevcdsp.c:25
#define assign(var, type, n)

Definition at line 140 of file hevcdsp_template.c.

◆ TR_8

#define TR_8 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_8[4]; \
int o_8[4] = { 0 }; \
for (i = 0; i < 4; i++) \
for (j = 1; j < end; j += 2) \
o_8[i] += transform[4 * j][i] * src[j * sstep]; \
TR_4(e_8, src, 1, 2 * sstep, SET, 4); \
for (i = 0; i < 4; i++) { \
assign(dst[i * dstep], e_8[i] + o_8[i]); \
assign(dst[(7 - i) * dstep], e_8[i] - o_8[i]); \
} \
} while (0)
#define SET(dst, x)
#define src
Definition: vp8dsp.c:254
static const int8_t transform[32][32]
Definition: hevcdsp.c:25
for(j=16;j >0;--j)

Definition at line 157 of file hevcdsp_template.c.

◆ TR_16

#define TR_16 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_16[8]; \
int o_16[8] = { 0 }; \
for (i = 0; i < 8; i++) \
for (j = 1; j < end; j += 2) \
o_16[i] += transform[2 * j][i] * src[j * sstep]; \
TR_8(e_16, src, 1, 2 * sstep, SET, 8); \
for (i = 0; i < 8; i++) { \
assign(dst[i * dstep], e_16[i] + o_16[i]); \
assign(dst[(15 - i) * dstep], e_16[i] - o_16[i]); \
} \
} while (0)
#define SET(dst, x)
#define src
Definition: vp8dsp.c:254
static const int8_t transform[32][32]
Definition: hevcdsp.c:25
for(j=16;j >0;--j)

Definition at line 173 of file hevcdsp_template.c.

◆ TR_32

#define TR_32 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_32[16]; \
int o_32[16] = { 0 }; \
for (i = 0; i < 16; i++) \
for (j = 1; j < end; j += 2) \
o_32[i] += transform[j][i] * src[j * sstep]; \
TR_16(e_32, src, 1, 2 * sstep, SET, end / 2); \
for (i = 0; i < 16; i++) { \
assign(dst[i * dstep], e_32[i] + o_32[i]); \
assign(dst[(31 - i) * dstep], e_32[i] - o_32[i]); \
} \
} while (0)
#define SET(dst, x)
#define src
Definition: vp8dsp.c:254
static const int8_t transform[32][32]
Definition: hevcdsp.c:25
for(j=16;j >0;--j)

Definition at line 189 of file hevcdsp_template.c.

◆ IDCT_VAR4

#define IDCT_VAR4 (   H)    int limit2 = FFMIN(col_limit + 4, H)

Definition at line 205 of file hevcdsp_template.c.

◆ IDCT_VAR8

#define IDCT_VAR8 (   H)
Value:
int limit = FFMIN(col_limit, H); \
int limit2 = FFMIN(col_limit + 4, H)
#define H
Definition: swscale.c:341
#define FFMIN(a, b)
Definition: common.h:66

Definition at line 207 of file hevcdsp_template.c.

◆ IDCT_VAR16

#define IDCT_VAR16 (   H)    IDCT_VAR8(H)

Definition at line 210 of file hevcdsp_template.c.

◆ IDCT_VAR32

#define IDCT_VAR32 (   H)    IDCT_VAR8(H)

Definition at line 211 of file hevcdsp_template.c.

◆ IDCT

#define IDCT (   H)
Value:
static void FUNC(idct_ ## H ## x ## H )(int16_t *coeffs, \
int col_limit) \
{ \
int i; \
int shift = 7; \
int add = 1 << (shift - 1); \
int16_t *src = coeffs; \
IDCT_VAR ## H(H); \
for (i = 0; i < H; i++) { \
TR_ ## H(src, src, H, H, SCALE, limit2); \
if (limit2 < H && i%4 == 0 && !!i) \
limit2 -= 4; \
src++; \
} \
\
shift = 20 - BIT_DEPTH; \
add = 1 << (shift - 1); \
for (i = 0; i < H; i++) { \
TR_ ## H(coeffs, coeffs, 1, 1, SCALE, limit); \
coeffs += H; \
} \
}
#define BIT_DEPTH
#define H
Definition: swscale.c:341
#define src
Definition: vp8dsp.c:254
#define FUNC(a)
#define SCALE(dst, x)
for(j=16;j >0;--j)

Definition at line 213 of file hevcdsp_template.c.

◆ IDCT_DC

#define IDCT_DC (   H)
Value:
static void FUNC(idct_ ## H ## x ## H ## _dc)(int16_t *coeffs) \
{ \
int i, j; \
int shift = 14 - BIT_DEPTH; \
int add = 1 << (shift - 1); \
int coeff = (((coeffs[0] + 1) >> 1) + add) >> shift; \
for (j = 0; j < H; j++) { \
for (i = 0; i < H; i++) { \
coeffs[i + j * H] = coeff; \
} \
} \
}
#define BIT_DEPTH
#define H
Definition: swscale.c:341
#define FUNC(a)
for(j=16;j >0;--j)

Definition at line 238 of file hevcdsp_template.c.

◆ CMP [1/4]

#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))

◆ CMP [2/4]

#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))

◆ CMP [3/4]

#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))

◆ CMP [4/4]

#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))

◆ QPEL_FILTER_1

#define QPEL_FILTER_1 (   src,
  stride 
)
Value:
(1 * -src[x - 3 * stride] + \
4 * src[x - 2 * stride] - \
10 * src[x - stride] + \
58 * src[x] + \
17 * src[x + stride] - \
5 * src[x + 2 * stride] + \
1 * src[x + 3 * stride])
int stride
Definition: mace.c:144
#define src
Definition: vp8dsp.c:254

Definition at line 747 of file hevcdsp_template.c.

◆ QPEL_FILTER_2

#define QPEL_FILTER_2 (   src,
  stride 
)
Value:
(1 * -src[x - 3 * stride] + \
4 * src[x - 2 * stride] - \
11 * src[x - stride] + \
40 * src[x] + \
40 * src[x + stride] - \
11 * src[x + 2 * stride] + \
4 * src[x + 3 * stride] - \
1 * src[x + 4 * stride])
int stride
Definition: mace.c:144
#define src
Definition: vp8dsp.c:254

Definition at line 756 of file hevcdsp_template.c.

◆ QPEL_FILTER_3

#define QPEL_FILTER_3 (   src,
  stride 
)
Value:
(1 * src[x - 2 * stride] - \
5 * src[x - stride] + \
17 * src[x] + \
58 * src[x + stride] - \
10 * src[x + 2 * stride] + \
4 * src[x + 3 * stride] - \
1 * src[x + 4 * stride])
int stride
Definition: mace.c:144
#define src
Definition: vp8dsp.c:254

Definition at line 766 of file hevcdsp_template.c.

◆ PUT_HEVC_QPEL_H

#define PUT_HEVC_QPEL_H (   H)
Value:
static void FUNC(put_hevc_qpel_h ## H)(int16_t *dst, ptrdiff_t dststride, \
uint8_t *_src, ptrdiff_t _srcstride, \
int width, int height, \
int16_t* mcbuffer) \
{ \
int x, y; \
pixel *src = (pixel*)_src; \
ptrdiff_t srcstride = _srcstride / sizeof(pixel); \
\
dststride /= sizeof(*dst); \
for (y = 0; y < height; y++) { \
for (x = 0; x < width; x++) \
dst[x] = QPEL_FILTER_ ## H(src, 1) >> (BIT_DEPTH - 8); \
src += srcstride; \
dst += dststride; \
} \
}
#define BIT_DEPTH
#define H
Definition: swscale.c:341
#define src
Definition: vp8dsp.c:254
#define FUNC(a)
#define pixel
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 776 of file hevcdsp_template.c.

◆ PUT_HEVC_QPEL_V

#define PUT_HEVC_QPEL_V (   V)
Value:
static void FUNC(put_hevc_qpel_v ## V)(int16_t *dst, ptrdiff_t dststride, \
uint8_t *_src, ptrdiff_t _srcstride, \
int width, int height, \
int16_t* mcbuffer) \
{ \
int x, y; \
pixel *src = (pixel*)_src; \
ptrdiff_t srcstride = _srcstride / sizeof(pixel); \
\
dststride /= sizeof(*dst); \
for (y = 0; y < height; y++) { \
for (x = 0; x < width; x++) \
dst[x] = QPEL_FILTER_ ## V(src, srcstride) >> (BIT_DEPTH - 8); \
src += srcstride; \
dst += dststride; \
} \
}
#define BIT_DEPTH
#define src
Definition: vp8dsp.c:254
#define FUNC(a)
#define V
Definition: options_table.h:34
#define pixel
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 795 of file hevcdsp_template.c.

◆ PUT_HEVC_QPEL_HV

#define PUT_HEVC_QPEL_HV (   H,
  V 
)

Definition at line 814 of file hevcdsp_template.c.

◆ QPEL

#define QPEL (   W)

Definition at line 865 of file hevcdsp_template.c.

◆ EPEL_FILTER

#define EPEL_FILTER (   src,
  stride 
)
Value:
(filter_0 * src[x - stride] + \
filter_1 * src[x] + \
filter_2 * src[x + stride] + \
filter_3 * src[x + 2 * stride])
int stride
Definition: mace.c:144
#define src
Definition: vp8dsp.c:254

Definition at line 957 of file hevcdsp_template.c.

Referenced by put_hevc_epel_h(), put_hevc_epel_hv(), and put_hevc_epel_v().

◆ EPEL

#define EPEL (   W)

Definition at line 1048 of file hevcdsp_template.c.

◆ PUT_PRED

#define PUT_PRED (   w)
Value:
static void FUNC(put_unweighted_pred_ ## w)(uint8_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, \
int height) \
{ \
FUNC(put_unweighted_pred)(dst, dststride, src, srcstride, w, height); \
} \
static void FUNC(put_unweighted_pred_avg_ ## w)(uint8_t *dst, ptrdiff_t dststride, \
int16_t *src1, int16_t *src2, \
ptrdiff_t srcstride, int height) \
{ \
FUNC(put_unweighted_pred_avg)(dst, dststride, src1, src2, srcstride, w, height); \
} \
static void FUNC(put_weighted_pred_ ## w)(uint8_t denom, int16_t weight, int16_t offset, \
uint8_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, int height) \
{ \
FUNC(weighted_pred)(denom, weight, offset, \
dst, dststride, src, srcstride, w, height); \
} \
static void FUNC(put_weighted_pred_avg_ ## w)(uint8_t denom, int16_t weight0, int16_t weight1, \
int16_t offset0, int16_t offset1, \
uint8_t *dst, ptrdiff_t dststride, \
int16_t *src1, int16_t *src2, \
ptrdiff_t srcstride, int height) \
{ \
FUNC(weighted_pred_avg)(denom, weight0, weight1, offset0, offset1, \
dst, dststride, src1, src2, srcstride, w, height); \
}
uint8_t
static av_always_inline void FUNC() weighted_pred(uint8_t denom, int16_t wlxFlag, int16_t olxFlag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
#define src
Definition: vp8dsp.c:254
#define FUNC(a)
static av_always_inline void FUNC() put_unweighted_pred(uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
static av_always_inline void FUNC() weighted_pred_avg(uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, int16_t ol0Flag, int16_t ol1Flag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
#define src1
Definition: h264pred.c:139
static av_always_inline void FUNC() put_unweighted_pred_avg(uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
int height
Definition: gxfenc.c:72

Definition at line 1203 of file hevcdsp_template.c.

◆ P3

#define P3   pix[-4 * xstride]

Definition at line 1245 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ P2

#define P2   pix[-3 * xstride]

Definition at line 1246 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ P1

#define P1   pix[-2 * xstride]

Definition at line 1247 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

◆ P0

#define P0   pix[-1 * xstride]

Definition at line 1248 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

◆ Q0

#define Q0   pix[0 * xstride]

Definition at line 1249 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

◆ Q1

#define Q1   pix[1 * xstride]

Definition at line 1250 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

◆ Q2

#define Q2   pix[2 * xstride]

Definition at line 1251 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ Q3

#define Q3   pix[3 * xstride]

Definition at line 1252 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TP3

#define TP3   pix[-4 * xstride + 3 * ystride]

Definition at line 1255 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TP2

#define TP2   pix[-3 * xstride + 3 * ystride]

Definition at line 1256 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TP1

#define TP1   pix[-2 * xstride + 3 * ystride]

Definition at line 1257 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TP0

#define TP0   pix[-1 * xstride + 3 * ystride]

Definition at line 1258 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TQ0

#define TQ0   pix[0 * xstride + 3 * ystride]

Definition at line 1259 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TQ1

#define TQ1   pix[1 * xstride + 3 * ystride]

Definition at line 1260 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TQ2

#define TQ2   pix[2 * xstride + 3 * ystride]

Definition at line 1261 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

◆ TQ3

#define TQ3   pix[3 * xstride + 3 * ystride]

Definition at line 1262 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

Function Documentation

◆ put_pcm()

static void FUNC() put_pcm ( uint8_t _dst,
ptrdiff_t  stride,
int  size,
GetBitContext gb,
int  pcm_bit_depth 
)
static

Definition at line 28 of file hevcdsp_template.c.

◆ add_residual()

static av_always_inline void FUNC() add_residual ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride,
int  size 
)
static

◆ add_residual4x4()

static void FUNC() add_residual4x4 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 60 of file hevcdsp_template.c.

◆ add_residual8x8()

static void FUNC() add_residual8x8 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 66 of file hevcdsp_template.c.

◆ add_residual16x16()

static void FUNC() add_residual16x16 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 72 of file hevcdsp_template.c.

◆ add_residual32x32()

static void FUNC() add_residual32x32 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 78 of file hevcdsp_template.c.

◆ dequant()

static void FUNC() dequant ( int16_t *  coeffs)
static

Definition at line 84 of file hevcdsp_template.c.

◆ transform_4x4_luma()

static void FUNC() transform_4x4_luma ( int16_t *  coeffs)
static

Definition at line 118 of file hevcdsp_template.c.

◆ sao_band_filter()

static void FUNC() sao_band_filter ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  width,
int  height,
int  c_idx,
int  class 
)
static

◆ sao_band_filter_0()

static void FUNC() sao_band_filter_0 ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  width,
int  height,
int  c_idx 
)
static

Definition at line 326 of file hevcdsp_template.c.

◆ sao_band_filter_1()

static void FUNC() sao_band_filter_1 ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  width,
int  height,
int  c_idx 
)
static

Definition at line 335 of file hevcdsp_template.c.

◆ sao_band_filter_2()

static void FUNC() sao_band_filter_2 ( uint8_t dst,
uint8_t src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  width,
int  height,
int  c_idx 
)
static

Definition at line 344 of file hevcdsp_template.c.

◆ sao_band_filter_3()

static void FUNC() sao_band_filter_3 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  width,
int  height,
int  c_idx 
)
static

Definition at line 353 of file hevcdsp_template.c.

◆ sao_edge_filter_0()

static void FUNC() sao_edge_filter_0 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  _width,
int  _height,
int  c_idx,
uint8_t  vert_edge,
uint8_t  horiz_edge,
uint8_t  diag_edge 
)
static

Definition at line 362 of file hevcdsp_template.c.

◆ sao_edge_filter_1()

static void FUNC() sao_edge_filter_1 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  _width,
int  _height,
int  c_idx,
uint8_t  vert_edge,
uint8_t  horiz_edge,
uint8_t  diag_edge 
)
static

Definition at line 469 of file hevcdsp_template.c.

◆ sao_edge_filter_2()

static void FUNC() sao_edge_filter_2 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  _width,
int  _height,
int  c_idx,
uint8_t  vert_edge,
uint8_t  horiz_edge,
uint8_t  diag_edge 
)
static

Definition at line 561 of file hevcdsp_template.c.

◆ sao_edge_filter_3()

static void FUNC() sao_edge_filter_3 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride,
SAOParams sao,
int *  borders,
int  _width,
int  _height,
int  c_idx,
uint8_t  vert_edge,
uint8_t  horiz_edge,
uint8_t  diag_edge 
)
static

Definition at line 647 of file hevcdsp_template.c.

◆ put_hevc_qpel_pixels()

static av_always_inline void FUNC() put_hevc_qpel_pixels ( int16_t *  dst,
ptrdiff_t  dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  width,
int  height,
int  mx,
int  my,
int16_t *  mcbuffer 
)
static

Definition at line 729 of file hevcdsp_template.c.

◆ put_hevc_epel_pixels()

static void FUNC() put_hevc_epel_pixels ( int16_t *  dst,
ptrdiff_t  dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  width,
int  height,
int  mx,
int  my,
int16_t *  mcbuffer 
)
inlinestatic

Definition at line 939 of file hevcdsp_template.c.

◆ put_hevc_epel_h()

static void FUNC() put_hevc_epel_h ( int16_t *  dst,
ptrdiff_t  dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  width,
int  height,
int  mx,
int  my,
int16_t *  mcbuffer 
)
inlinestatic

Definition at line 963 of file hevcdsp_template.c.

◆ put_hevc_epel_v()

static void FUNC() put_hevc_epel_v ( int16_t *  dst,
ptrdiff_t  dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  width,
int  height,
int  mx,
int  my,
int16_t *  mcbuffer 
)
inlinestatic

Definition at line 985 of file hevcdsp_template.c.

◆ put_hevc_epel_hv()

static void FUNC() put_hevc_epel_hv ( int16_t *  dst,
ptrdiff_t  dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  width,
int  height,
int  mx,
int  my,
int16_t *  mcbuffer 
)
inlinestatic

Definition at line 1008 of file hevcdsp_template.c.

◆ put_unweighted_pred()

static av_always_inline void FUNC() put_unweighted_pred ( uint8_t _dst,
ptrdiff_t  _dststride,
int16_t *  src,
ptrdiff_t  srcstride,
int  width,
int  height 
)
static

Definition at line 1092 of file hevcdsp_template.c.

Referenced by ff_hevc_dsp_init_x86().

◆ put_unweighted_pred_avg()

static av_always_inline void FUNC() put_unweighted_pred_avg ( uint8_t _dst,
ptrdiff_t  _dststride,
int16_t *  src1,
int16_t *  src2,
ptrdiff_t  srcstride,
int  width,
int  height 
)
static

Definition at line 1116 of file hevcdsp_template.c.

Referenced by ff_hevc_dsp_init_x86().

◆ weighted_pred()

static av_always_inline void FUNC() weighted_pred ( uint8_t  denom,
int16_t  wlxFlag,
int16_t  olxFlag,
uint8_t _dst,
ptrdiff_t  _dststride,
int16_t *  src,
ptrdiff_t  srcstride,
int  width,
int  height 
)
static

Definition at line 1143 of file hevcdsp_template.c.

Referenced by ff_hevc_dsp_init_x86().

◆ weighted_pred_avg()

static av_always_inline void FUNC() weighted_pred_avg ( uint8_t  denom,
int16_t  wl0Flag,
int16_t  wl1Flag,
int16_t  ol0Flag,
int16_t  ol1Flag,
uint8_t _dst,
ptrdiff_t  _dststride,
int16_t *  src1,
int16_t *  src2,
ptrdiff_t  srcstride,
int  width,
int  height 
)
static

Definition at line 1173 of file hevcdsp_template.c.

Referenced by ff_hevc_dsp_init_x86().

◆ hevc_loop_filter_luma()

static void FUNC() hevc_loop_filter_luma ( uint8_t _pix,
ptrdiff_t  _xstride,
ptrdiff_t  _ystride,
int  beta,
int *  _tc,
uint8_t _no_p,
uint8_t _no_q 
)
static

Definition at line 1264 of file hevcdsp_template.c.

Referenced by hevc_h_loop_filter_luma(), and hevc_v_loop_filter_luma().

◆ hevc_loop_filter_chroma()

static void FUNC() hevc_loop_filter_chroma ( uint8_t _pix,
ptrdiff_t  _xstride,
ptrdiff_t  _ystride,
int *  _tc,
uint8_t _no_p,
uint8_t _no_q 
)
static

Definition at line 1360 of file hevcdsp_template.c.

Referenced by hevc_h_loop_filter_chroma(), and hevc_v_loop_filter_chroma().

◆ hevc_h_loop_filter_chroma()

static void FUNC() hevc_h_loop_filter_chroma ( uint8_t pix,
ptrdiff_t  stride,
int *  tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1394 of file hevcdsp_template.c.

◆ hevc_v_loop_filter_chroma()

static void FUNC() hevc_v_loop_filter_chroma ( uint8_t pix,
ptrdiff_t  stride,
int *  tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1401 of file hevcdsp_template.c.

◆ hevc_h_loop_filter_luma()

static void FUNC() hevc_h_loop_filter_luma ( uint8_t pix,
ptrdiff_t  stride,
int  beta,
int *  tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1408 of file hevcdsp_template.c.

◆ hevc_v_loop_filter_luma()

static void FUNC() hevc_v_loop_filter_luma ( uint8_t pix,
ptrdiff_t  stride,
int  beta,
int *  tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1416 of file hevcdsp_template.c.