FFmpeg
Macros | Functions
dsp_template.c File Reference
#include "get_bits.h"
#include "hevcdec.h"
#include "bit_depth_template.c"
#include "dsp.h"
#include "h26x/h2656_sao_template.c"
#include "h26x/h2656_inter_template.c"
#include "h26x/h2656_deblock_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 ff_hevc_pel_filters   ff_hevc_qpel_filters
 
#define DECL_HV_FILTER(f)
 
#define FW_PUT(p, f, t)
 
#define FW_PUT_UNI(p, f, t)
 
#define FW_PUT_UNI_W(p, f, t)
 
#define FW_PUT_FUNCS(f, t, dir)
 
#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)
 HEVC transform dequantization (ITU-T H.265 8.6.3) More...
 
static void FUNC() transform_4x4_luma (int16_t *coeffs)
 
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_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_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_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_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_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_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_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_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_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_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_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_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_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 154 of file dsp_template.c.

◆ SCALE

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

Definition at line 155 of file dsp_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 157 of file dsp_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 194 of file dsp_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 207 of file dsp_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 223 of file dsp_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 239 of file dsp_template.c.

◆ IDCT_VAR4

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

Definition at line 255 of file dsp_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 257 of file dsp_template.c.

◆ IDCT_VAR16

#define IDCT_VAR16 (   H)    IDCT_VAR8(H)

Definition at line 260 of file dsp_template.c.

◆ IDCT_VAR32

#define IDCT_VAR32 (   H)    IDCT_VAR8(H)

Definition at line 261 of file dsp_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 263 of file dsp_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 288 of file dsp_template.c.

◆ ff_hevc_pel_filters

#define ff_hevc_pel_filters   ff_hevc_qpel_filters

Definition at line 324 of file dsp_template.c.

◆ DECL_HV_FILTER

#define DECL_HV_FILTER (   f)
Value:
const int8_t *hf = ff_hevc_ ## f ## _filters[mx]; \
const int8_t *vf = ff_hevc_ ## f ## _filters[my];

Definition at line 325 of file dsp_template.c.

◆ FW_PUT

#define FW_PUT (   p,
  f,
 
)
Value:
static void FUNC(put_hevc_## f)(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, int height, \
intptr_t mx, intptr_t my, int width) \
{ \
DECL_HV_FILTER(p) \
FUNC(put_ ## t)(dst, src, srcstride, height, hf, vf, width); \
}

Definition at line 329 of file dsp_template.c.

◆ FW_PUT_UNI

#define FW_PUT_UNI (   p,
  f,
 
)
Value:
static void FUNC(put_hevc_ ## f)(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, \
ptrdiff_t srcstride, int height, intptr_t mx, intptr_t my, int width) \
{ \
DECL_HV_FILTER(p) \
FUNC(put_ ## t)(dst, dststride, src, srcstride, height, hf, vf, width); \
}

Definition at line 337 of file dsp_template.c.

◆ FW_PUT_UNI_W

#define FW_PUT_UNI_W (   p,
  f,
 
)
Value:
static void FUNC(put_hevc_ ## f)(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) \
{ \
DECL_HV_FILTER(p) \
FUNC(put_ ## t)(dst, dststride, src, srcstride, height, denom, wx, ox, hf, vf, width); \
}

Definition at line 345 of file dsp_template.c.

◆ FW_PUT_FUNCS

#define FW_PUT_FUNCS (   f,
  t,
  dir 
)
Value:
FW_PUT(f, f ## _ ## dir, t ## _ ## dir) \
FW_PUT_UNI(f, f ## _uni_ ## dir, uni_ ## t ## _ ## dir) \
FW_PUT_UNI_W(f, f ## _uni_w_ ## dir, uni_## t ## _w_ ## dir)

Definition at line 354 of file dsp_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 425 of file dsp_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 630 of file dsp_template.c.

◆ P3

#define P3   pix[-4 * xstride]

Definition at line 822 of file dsp_template.c.

◆ P2

#define P2   pix[-3 * xstride]

Definition at line 823 of file dsp_template.c.

◆ P1

#define P1   pix[-2 * xstride]

Definition at line 824 of file dsp_template.c.

◆ P0

#define P0   pix[-1 * xstride]

Definition at line 825 of file dsp_template.c.

◆ Q0

#define Q0   pix[0 * xstride]

Definition at line 826 of file dsp_template.c.

◆ Q1

#define Q1   pix[1 * xstride]

Definition at line 827 of file dsp_template.c.

◆ Q2

#define Q2   pix[2 * xstride]

Definition at line 828 of file dsp_template.c.

◆ Q3

#define Q3   pix[3 * xstride]

Definition at line 829 of file dsp_template.c.

◆ TP3

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

Definition at line 832 of file dsp_template.c.

◆ TP2

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

Definition at line 833 of file dsp_template.c.

◆ TP1

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

Definition at line 834 of file dsp_template.c.

◆ TP0

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

Definition at line 835 of file dsp_template.c.

◆ TQ0

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

Definition at line 836 of file dsp_template.c.

◆ TQ1

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

Definition at line 837 of file dsp_template.c.

◆ TQ2

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

Definition at line 838 of file dsp_template.c.

◆ TQ3

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

Definition at line 839 of file dsp_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 31 of file dsp_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 63 of file dsp_template.c.

◆ add_residual8x8()

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

Definition at line 69 of file dsp_template.c.

◆ add_residual16x16()

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

Definition at line 75 of file dsp_template.c.

◆ add_residual32x32()

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

Definition at line 81 of file dsp_template.c.

◆ transform_rdpcm()

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

Definition at line 87 of file dsp_template.c.

◆ dequant()

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

HEVC transform dequantization (ITU-T H.265 8.6.3)

Parameters
coeffstransform coefficient buffer (in-place)
log2_sizelog2 of transform block size, range: 2..5 (4x4 to 32x32) This value comes from recursive split_transform_flag parsing in the bitstream, bounded by log2_min_tb_size (min 2) and log2_max_trafo_size (max 5) from SPS.

Formula: shift = 15 - BIT_DEPTH - log2_size

bit_depth | 4x4 (2) | 8x8 (3) | 16x16 (4) | 32x32 (5) -------—+------—+------—+--------—+-------— 8-bit | 5 | 4 | 3 | 2 (shift right) 10-bit | 3 | 2 | 1 | 0 (shift right / no-op) 12-bit | 1 | 0 | -1 | -2 (shift right / no-op / shift left)

When shift == 0, output equals input (identity transform), so we skip the loop entirely for better performance.

Definition at line 129 of file dsp_template.c.

◆ transform_4x4_luma()

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

Definition at line 172 of file dsp_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 370 of file dsp_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 396 of file dsp_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 435 of file dsp_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 463 of file dsp_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 491 of file dsp_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 531 of file dsp_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 559 of file dsp_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 587 of file dsp_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 636 of file dsp_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 663 of file dsp_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 689 of file dsp_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 729 of file dsp_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 755 of file dsp_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 781 of file dsp_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 843 of file dsp_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 888 of file dsp_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 909 of file dsp_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 916 of file dsp_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 923 of file dsp_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 931 of file dsp_template.c.

SET
#define SET(dst, x)
Definition: dsp_template.c:154
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
filter
void(* filter)(uint8_t *src, int stride, int qscale)
Definition: h263dsp.c:29
c1
static const uint64_t c1
Definition: murmur3.c:52
mx
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t mx
Definition: dsp.h:57
transform
static const int8_t transform[32][32]
Definition: dsp.c:27
my
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t my
Definition: dsp.h:57
srcstride
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t const uint8_t ptrdiff_t srcstride
Definition: dsp.h:88
f
f
Definition: af_crystalizer.c:122
height
#define height
Definition: dsp.h:89
shift
static int shift(int a, int b)
Definition: bonk.c:261
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:87
for
for(k=2;k<=8;++k)
Definition: h264pred_template.c:424
SCALE
#define SCALE(dst, x)
Definition: dsp_template.c:155
H
#define H
Definition: pixlet.c:39
assign
#define assign(var, type, n)
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:256
FFMIN
#define FFMIN(a, b)
Definition: macros.h:49
hf
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t * hf
Definition: dsp.h:258
limit
static double limit(double x)
Definition: vf_pseudocolor.c:142
c2
static const uint64_t c2
Definition: murmur3.c:53
FUNC
#define FUNC(a)
Definition: bit_depth_template.c:104
BIT_DEPTH
#define BIT_DEPTH
Definition: dsp_init.c:73
Windows::Graphics::DirectX::Direct3D11::p
IDirect3DDxgiInterfaceAccess _COM_Outptr_ void ** p
Definition: vsrc_gfxcapture_winrt.hpp:53
FW_PUT
#define FW_PUT(p, f, t)
Definition: dsp_template.c:329
_
#define _
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:80
stride
#define stride
Definition: h264pred_template.c:536
width
#define width
Definition: dsp.h:89
vf
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t const int8_t * vf
Definition: dsp.h:258
src
#define src
Definition: vp8dsp.c:248