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, 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() 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, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, int16_t *sao_offset_val, int sao_left_class, int width, int height)
 
static void FUNC() sao_edge_filter (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, int16_t *sao_offset_val, int eo, int width, int height)
 
static void FUNC() sao_edge_restore_0 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, 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_restore_1 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, 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() put_hevc_pel_pixels (int16_t *dst, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, 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, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, 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, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, uint8_t *_src, ptrdiff_t _srcstride, 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, 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, int32_t *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, int32_t *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, int32_t *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, int32_t *tc, uint8_t *no_p, 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,
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 61 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 67 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 73 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 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,
uint8_t _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
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,
uint8_t _src,
ptrdiff_t  stride_dst,
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,
uint8_t _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
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 355 of file hevcdsp_template.c.

◆ sao_edge_restore_1()

static void FUNC() sao_edge_restore_1 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
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 405 of file hevcdsp_template.c.

◆ put_hevc_pel_pixels()

static void FUNC() put_hevc_pel_pixels ( int16_t *  dst,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
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,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
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,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
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,
uint8_t _src,
ptrdiff_t  _srcstride,
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,
int _tc,
uint8_t _no_p,
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,
int _tc,
uint8_t _no_p,
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,
int32_t tc,
uint8_t no_p,
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,
int32_t tc,
uint8_t no_p,
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,
int32_t tc,
uint8_t no_p,
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,
int32_t tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1668 of file hevcdsp_template.c.

stride
int stride
Definition: mace.c:144
BIT_DEPTH
#define BIT_DEPTH
Definition: bit_depth_template.c:24
end
static av_cold int end(AVCodecContext *avctx)
Definition: avrndec.c:90
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:49
src
#define src
Definition: vp8dsp.c:254
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
H
F H1 F F H1 F F F F H1<-F-------F-------F v v v H2 H3 H2 ^ ^ ^ F-------F-------F-> H1<-F-------F-------F|||||||||F H1 F|||||||||F H1 Funavailable fullpel samples(outside the picture for example) shall be equalto the closest available fullpel sampleSmaller pel interpolation:--------------------------if diag_mc is set then points which lie on a line between 2 vertically, horizontally or diagonally adjacent halfpel points shall be interpolatedlinearly with rounding to nearest and halfway values rounded up.points which lie on 2 diagonals at the same time should only use the onediagonal not containing the fullpel point F--> O q O<--h1-> O q O<--F v \/v \/v O O O O O O O|/|\|q q q q q|/|\|O O O O O O O ^/\ ^/\ ^ h2--> O q O<--h3-> O q O<--h2 v \/v \/v O O O O O O O|\|/|q q q q q|\|/|O O O O O O O ^/\ ^/\ ^ F--> O q O<--h1-> O q O<--Fthe remaining points shall be bilinearly interpolated from theup to 4 surrounding halfpel and fullpel points, again rounding should be tonearest and halfway values rounded upcompliant Snow decoders MUST support 1-1/8 pel luma and 1/2-1/16 pel chromainterpolation at leastOverlapped block motion compensation:-------------------------------------FIXMELL band prediction:===================Each sample in the LL0 subband is predicted by the median of the left, top andleft+top-topleft samples, samples outside the subband shall be considered tobe 0. To reverse this prediction in the decoder apply the following.for(y=0;y< height;y++){ for(x=0;x< width;x++){ sample[y][x]+=median(sample[y-1][x], sample[y][x-1], sample[y-1][x]+sample[y][x-1]-sample[y-1][x-1]);}}sample[-1][ *]=sample[ *][-1]=0;width, height here are the width and height of the LL0 subband not of the finalvideoDequantization:===============FIXMEWavelet Transform:==================Snow supports 2 wavelet transforms, the symmetric biorthogonal 5/3 integertransform and an integer approximation of the symmetric biorthogonal 9/7daubechies wavelet.2D IDWT(inverse discrete wavelet transform) --------------------------------------------The 2D IDWT applies a 2D filter recursively, each time combining the4 lowest frequency subbands into a single subband until only 1 subbandremains.The 2D filter is done by first applying a 1D filter in the vertical directionand then applying it in the horizontal one. --------------- --------------- --------------- ---------------|LL0|HL0|||||||||||||---+---|HL1||L0|H0|HL1||LL1|HL1|||||LH0|HH0|||||||||||||-------+-------|-> L1 H1 LH1 HH1 LH1 HH1 LH1 HH1 this can end with a L or a H
Definition: snow.txt:555
for
for(j=16;j >0;--j)
Definition: h264pred_template.c:469
FFMIN
#define FFMIN(a, b)
Definition: common.h:96
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:259
c2
static const uint64_t c2
Definition: murmur3.c:50
shift
static int shift(int a, int b)
Definition: sonic.c:82
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:72