FFmpeg
Macros | Functions
hevcdsp_template.c File Reference
#include "get_bits.h"
#include "hevcdec.h"
#include "bit_depth_template.c"
#include "hevcdsp.h"

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)) - ((a) < (b)))
 
#define QPEL_FILTER(src, stride)
 
#define EPEL_FILTER(src, stride)
 
#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 width, int height, GetBitContext *gb, int pcm_bit_depth)
 
static av_always_inline void FUNC() add_residual (uint8_t *_dst, const int16_t *res, ptrdiff_t stride, int size)
 
static void FUNC() add_residual4x4 (uint8_t *_dst, const int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual8x8 (uint8_t *_dst, const int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual16x16 (uint8_t *_dst, const int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual32x32 (uint8_t *_dst, const int16_t *res, ptrdiff_t stride)
 
static void FUNC() transform_rdpcm (int16_t *_coeffs, int16_t log2_size, int mode)
 
static void FUNC() dequant (int16_t *coeffs, int16_t log2_size)
 
static void FUNC() transform_4x4_luma (int16_t *coeffs)
 
static void FUNC() sao_band_filter (uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
 
static void FUNC() sao_edge_filter (uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
 
static void FUNC() sao_edge_restore_0 (uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const SAOParams *sao, const int *borders, int _width, int _height, int c_idx, const uint8_t *vert_edge, const uint8_t *horiz_edge, const uint8_t *diag_edge)
 
static void FUNC() sao_edge_restore_1 (uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const SAOParams *sao, const int *borders, int _width, int _height, int c_idx, const uint8_t *vert_edge, const uint8_t *horiz_edge, const uint8_t *diag_edge)
 
static void FUNC() put_hevc_pel_pixels (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_uni_pixels (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_bi_pixels (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_uni_w_pixels (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_bi_w_pixels (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_h (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_v (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_hv (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_h (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_v (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_hv (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_h (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_v (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_hv (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() hevc_loop_filter_luma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
 
static void FUNC() hevc_loop_filter_chroma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
 
static void FUNC() hevc_h_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, const int32_t *tc, const uint8_t *no_p, const uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, const int32_t *tc, const uint8_t *no_p, const uint8_t *no_q)
 
static void FUNC() hevc_h_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int beta, const int32_t *tc, const uint8_t *no_p, const uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int beta, const int32_t *tc, const uint8_t *no_p, const uint8_t *no_q)
 

Macro Definition Documentation

◆ SET

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

Definition at line 131 of file hevcdsp_template.c.

◆ SCALE

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

Definition at line 132 of file hevcdsp_template.c.

◆ 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)

Definition at line 134 of file hevcdsp_template.c.

◆ TR_4

#define TR_4 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
const int e0 = 64 * src[0 * sstep] + 64 * src[2 * sstep]; \
const int e1 = 64 * src[0 * sstep] - 64 * src[2 * sstep]; \
const int o0 = 83 * src[1 * sstep] + 36 * src[3 * sstep]; \
const int o1 = 36 * src[1 * sstep] - 83 * 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)

Definition at line 171 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)

Definition at line 184 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)

Definition at line 200 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)

Definition at line 216 of file hevcdsp_template.c.

◆ IDCT_VAR4

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

Definition at line 232 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)

Definition at line 234 of file hevcdsp_template.c.

◆ IDCT_VAR16

#define IDCT_VAR16 (   H)    IDCT_VAR8(H)

Definition at line 237 of file hevcdsp_template.c.

◆ IDCT_VAR32

#define IDCT_VAR32 (   H)    IDCT_VAR8(H)

Definition at line 238 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; \
} \
}

Definition at line 240 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; \
} \
} \
}

Definition at line 265 of file hevcdsp_template.c.

◆ CMP

#define CMP (   a,
  b 
)    (((a) > (b)) - ((a) < (b)))

Definition at line 322 of file hevcdsp_template.c.

◆ QPEL_FILTER

#define QPEL_FILTER (   src,
  stride 
)
Value:
(filter[0] * src[x - 3 * stride] + \
filter[1] * src[x - 2 * stride] + \
filter[2] * src[x - stride] + \
filter[3] * src[x ] + \
filter[4] * src[x + stride] + \
filter[5] * src[x + 2 * stride] + \
filter[6] * src[x + 3 * stride] + \
filter[7] * src[x + 4 * stride])

Definition at line 607 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])

Definition at line 1064 of file hevcdsp_template.c.

◆ P3

#define P3   pix[-4 * xstride]

Definition at line 1497 of file hevcdsp_template.c.

◆ P2

#define P2   pix[-3 * xstride]

Definition at line 1498 of file hevcdsp_template.c.

◆ P1

#define P1   pix[-2 * xstride]

Definition at line 1499 of file hevcdsp_template.c.

◆ P0

#define P0   pix[-1 * xstride]

Definition at line 1500 of file hevcdsp_template.c.

◆ Q0

#define Q0   pix[0 * xstride]

Definition at line 1501 of file hevcdsp_template.c.

◆ Q1

#define Q1   pix[1 * xstride]

Definition at line 1502 of file hevcdsp_template.c.

◆ Q2

#define Q2   pix[2 * xstride]

Definition at line 1503 of file hevcdsp_template.c.

◆ Q3

#define Q3   pix[3 * xstride]

Definition at line 1504 of file hevcdsp_template.c.

◆ TP3

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

Definition at line 1507 of file hevcdsp_template.c.

◆ TP2

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

Definition at line 1508 of file hevcdsp_template.c.

◆ TP1

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

Definition at line 1509 of file hevcdsp_template.c.

◆ TP0

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

Definition at line 1510 of file hevcdsp_template.c.

◆ TQ0

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

Definition at line 1511 of file hevcdsp_template.c.

◆ TQ1

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

Definition at line 1512 of file hevcdsp_template.c.

◆ TQ2

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

Definition at line 1513 of file hevcdsp_template.c.

◆ TQ3

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

Definition at line 1514 of file hevcdsp_template.c.

Function Documentation

◆ put_pcm()

static void FUNC() put_pcm ( uint8_t *  _dst,
ptrdiff_t  stride,
int  width,
int  height,
GetBitContext gb,
int  pcm_bit_depth 
)
static

Definition at line 29 of file hevcdsp_template.c.

◆ add_residual()

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

◆ add_residual4x4()

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

Definition at line 61 of file hevcdsp_template.c.

◆ add_residual8x8()

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

Definition at line 67 of file hevcdsp_template.c.

◆ add_residual16x16()

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

Definition at line 73 of file hevcdsp_template.c.

◆ add_residual32x32()

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

Definition at line 79 of file hevcdsp_template.c.

◆ transform_rdpcm()

static void FUNC() transform_rdpcm ( int16_t *  _coeffs,
int16_t  log2_size,
int  mode 
)
static

Definition at line 85 of file hevcdsp_template.c.

◆ dequant()

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

Definition at line 107 of file hevcdsp_template.c.

◆ transform_4x4_luma()

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

Definition at line 149 of file hevcdsp_template.c.

◆ sao_band_filter()

static void FUNC() sao_band_filter ( uint8_t *  _dst,
const uint8_t *  _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
const int16_t *  sao_offset_val,
int  sao_left_class,
int  width,
int  height 
)
static

Definition at line 298 of file hevcdsp_template.c.

◆ sao_edge_filter()

static void FUNC() sao_edge_filter ( uint8_t *  _dst,
const uint8_t *  _src,
ptrdiff_t  stride_dst,
const int16_t *  sao_offset_val,
int  eo,
int  width,
int  height 
)
static

Definition at line 324 of file hevcdsp_template.c.

◆ sao_edge_restore_0()

static void FUNC() sao_edge_restore_0 ( uint8_t *  _dst,
const uint8_t *  _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
const SAOParams sao,
const int borders,
int  _width,
int  _height,
int  c_idx,
const uint8_t *  vert_edge,
const uint8_t *  horiz_edge,
const uint8_t *  diag_edge 
)
static

Definition at line 355 of file hevcdsp_template.c.

◆ sao_edge_restore_1()

static void FUNC() sao_edge_restore_1 ( uint8_t *  _dst,
const uint8_t *  _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
const SAOParams sao,
const int borders,
int  _width,
int  _height,
int  c_idx,
const uint8_t *  vert_edge,
const uint8_t *  horiz_edge,
const uint8_t *  diag_edge 
)
static

Definition at line 405 of file hevcdsp_template.c.

◆ put_hevc_pel_pixels()

static void FUNC() put_hevc_pel_pixels ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 496 of file hevcdsp_template.c.

◆ put_hevc_pel_uni_pixels()

static void FUNC() put_hevc_pel_uni_pixels ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 512 of file hevcdsp_template.c.

◆ put_hevc_pel_bi_pixels()

static void FUNC() put_hevc_pel_bi_pixels ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 528 of file hevcdsp_template.c.

◆ put_hevc_pel_uni_w_pixels()

static void FUNC() put_hevc_pel_uni_w_pixels ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 554 of file hevcdsp_template.c.

◆ put_hevc_pel_bi_w_pixels()

static void FUNC() put_hevc_pel_bi_w_pixels ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 578 of file hevcdsp_template.c.

◆ put_hevc_qpel_h()

static void FUNC() put_hevc_qpel_h ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 617 of file hevcdsp_template.c.

◆ put_hevc_qpel_v()

static void FUNC() put_hevc_qpel_v ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 633 of file hevcdsp_template.c.

◆ put_hevc_qpel_hv()

static void FUNC() put_hevc_qpel_hv ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 649 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_h()

static void FUNC() put_hevc_qpel_uni_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 681 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_h()

static void FUNC() put_hevc_qpel_bi_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 707 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_v()

static void FUNC() put_hevc_qpel_uni_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 735 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_v()

static void FUNC() put_hevc_qpel_bi_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 762 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_hv()

static void FUNC() put_hevc_qpel_uni_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 790 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_hv()

static void FUNC() put_hevc_qpel_bi_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 830 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_h()

static void FUNC() put_hevc_qpel_uni_w_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 870 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_h()

static void FUNC() put_hevc_qpel_bi_w_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 897 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_v()

static void FUNC() put_hevc_qpel_uni_w_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 925 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_v()

static void FUNC() put_hevc_qpel_bi_w_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 952 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_hv()

static void FUNC() put_hevc_qpel_uni_w_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 980 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_hv()

static void FUNC() put_hevc_qpel_bi_w_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1021 of file hevcdsp_template.c.

◆ put_hevc_epel_h()

static void FUNC() put_hevc_epel_h ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1070 of file hevcdsp_template.c.

◆ put_hevc_epel_v()

static void FUNC() put_hevc_epel_v ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1086 of file hevcdsp_template.c.

◆ put_hevc_epel_hv()

static void FUNC() put_hevc_epel_hv ( int16_t *  dst,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1103 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_h()

static void FUNC() put_hevc_epel_uni_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1134 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_h()

static void FUNC() put_hevc_epel_bi_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1158 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_v()

static void FUNC() put_hevc_epel_uni_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1185 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_v()

static void FUNC() put_hevc_epel_bi_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1209 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_hv()

static void FUNC() put_hevc_epel_uni_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1235 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_hv()

static void FUNC() put_hevc_epel_bi_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1273 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_h()

static void FUNC() put_hevc_epel_uni_w_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1313 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_h()

static void FUNC() put_hevc_epel_bi_w_h ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1339 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_v()

static void FUNC() put_hevc_epel_uni_w_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1365 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_v()

static void FUNC() put_hevc_epel_bi_w_v ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1391 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_hv()

static void FUNC() put_hevc_epel_uni_w_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1417 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_hv()

static void FUNC() put_hevc_epel_bi_w_hv ( uint8_t *  _dst,
ptrdiff_t  _dststride,
const uint8_t *  _src,
ptrdiff_t  _srcstride,
const int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1456 of file hevcdsp_template.c.

◆ hevc_loop_filter_luma()

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

Definition at line 1516 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,
const int _tc,
const uint8_t *  _no_p,
const uint8_t *  _no_q 
)
static

Definition at line 1612 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,
const int32_t tc,
const uint8_t *  no_p,
const uint8_t *  no_q 
)
static

Definition at line 1646 of file hevcdsp_template.c.

◆ hevc_v_loop_filter_chroma()

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

Definition at line 1653 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,
const int32_t tc,
const uint8_t *  no_p,
const uint8_t *  no_q 
)
static

Definition at line 1660 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,
const int32_t tc,
const uint8_t *  no_p,
const uint8_t *  no_q 
)
static

Definition at line 1668 of file hevcdsp_template.c.

BIT_DEPTH
#define BIT_DEPTH
Definition: bit_depth_template.c:24
step
trying all byte sequences megabyte in length and selecting the best looking sequence will yield cases to try But a word about which is also called distortion Distortion can be quantified by almost any quality measurement one chooses the sum of squared differences is used but more complex methods that consider psychovisual effects can be used as well It makes no difference in this discussion First step
Definition: rate_distortion.txt:58
SET
#define SET(dst, x)
Definition: hevcdsp_template.c:131
filter
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
Definition: filter_design.txt:228
c1
static const uint64_t c1
Definition: murmur3.c:52
FUNC
static void FUNC(ff_hevc_idct_4x4, BIT_DEPTH)
Definition: hevcdsp_template.c:21
transform
static const int8_t transform[32][32]
Definition: hevcdsp.c:27
shift
static int shift(int a, int b)
Definition: bonk.c:262
for
for(k=2;k<=8;++k)
Definition: h264pred_template.c:425
H
#define H
Definition: pixlet.c:38
SCALE
#define SCALE(dst, x)
Definition: hevcdsp_template.c:132
assign
#define assign(var, type, n)
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:255
FFMIN
#define FFMIN(a, b)
Definition: macros.h:49
limit
static double limit(double x)
Definition: vf_pseudocolor.c:142
stride
#define stride
Definition: h264pred_template.c:537
c2
static const uint64_t c2
Definition: murmur3.c:53
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:79