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

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

Definition at line 131 of file hevcdsp_template.c.

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

Definition at line 132 of file hevcdsp_template.c.

Referenced by transform_4x4_luma().

#define TR_4x4_LUMA (   dst,
  src,
  step,
  assign 
)
Value:
do { \
int c0 = src[0 * step] + src[2 * step]; \
int c1 = src[2 * step] + src[3 * step]; \
int c2 = src[0 * step] - src[3 * step]; \
int c3 = 74 * src[1 * step]; \
assign(dst[2 * step], 74 * (src[0 * step] - \
src[2 * step] + \
src[3 * step])); \
assign(dst[0 * step], 29 * c0 + 55 * c1 + c3); \
assign(dst[1 * step], 55 * c2 - 29 * c1 + c3); \
assign(dst[3 * step], 55 * c0 + 29 * c2 - c3); \
} while (0)
#define src
Definition: vp8dsp.c:254
static const uint64_t c1
Definition: murmur3.c:49
int
#define assign(var, type, n)
static const uint64_t c2
Definition: murmur3.c:50
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 at line 134 of file hevcdsp_template.c.

Referenced by transform_4x4_luma().

#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)
#define src
Definition: vp8dsp.c:254
#define assign(var, type, n)

Definition at line 171 of file hevcdsp_template.c.

#define TR_8 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_8[4]; \
int o_8[4] = { 0 }; \
for (i = 0; i < 4; i++) \
for (j = 1; j < end; j += 2) \
o_8[i] += transform[4 * j][i] * src[j * sstep]; \
TR_4(e_8, src, 1, 2 * sstep, SET, 4); \
for (i = 0; i < 4; i++) { \
assign(dst[i * dstep], e_8[i] + o_8[i]); \
assign(dst[(7 - i) * dstep], e_8[i] - o_8[i]); \
} \
} while (0)
#define src
Definition: vp8dsp.c:254
#define SET(dst, x)
static av_cold int end(AVCodecContext *avctx)
Definition: avrndec.c:90
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
static const int8_t transform[32][32]
Definition: hevcdsp.c:27
int
#define assign(var, type, n)
#define TR_4(dst, src, dstep, sstep, assign, end)
for(j=16;j >0;--j)

Definition at line 184 of file hevcdsp_template.c.

#define TR_16 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_16[8]; \
int o_16[8] = { 0 }; \
for (i = 0; i < 8; i++) \
for (j = 1; j < end; j += 2) \
o_16[i] += transform[2 * j][i] * src[j * sstep]; \
TR_8(e_16, src, 1, 2 * sstep, SET, 8); \
for (i = 0; i < 8; i++) { \
assign(dst[i * dstep], e_16[i] + o_16[i]); \
assign(dst[(15 - i) * dstep], e_16[i] - o_16[i]); \
} \
} while (0)
#define src
Definition: vp8dsp.c:254
#define SET(dst, x)
static av_cold int end(AVCodecContext *avctx)
Definition: avrndec.c:90
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
static const int8_t transform[32][32]
Definition: hevcdsp.c:27
int
#define assign(var, type, n)
for(j=16;j >0;--j)
#define TR_8(dst, src, dstep, sstep, assign, end)

Definition at line 200 of file hevcdsp_template.c.

#define TR_32 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_32[16]; \
int o_32[16] = { 0 }; \
for (i = 0; i < 16; i++) \
for (j = 1; j < end; j += 2) \
o_32[i] += transform[j][i] * src[j * sstep]; \
TR_16(e_32, src, 1, 2 * sstep, SET, end / 2); \
for (i = 0; i < 16; i++) { \
assign(dst[i * dstep], e_32[i] + o_32[i]); \
assign(dst[(31 - i) * dstep], e_32[i] - o_32[i]); \
} \
} while (0)
#define src
Definition: vp8dsp.c:254
#define SET(dst, x)
static av_cold int end(AVCodecContext *avctx)
Definition: avrndec.c:90
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
#define TR_16(dst, src, dstep, sstep, assign, end)
static const int8_t transform[32][32]
Definition: hevcdsp.c:27
int
#define assign(var, type, n)
for(j=16;j >0;--j)

Definition at line 216 of file hevcdsp_template.c.

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

Definition at line 232 of file hevcdsp_template.c.

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

Definition at line 234 of file hevcdsp_template.c.

#define IDCT_VAR16 (   H)    IDCT_VAR8(H)

Definition at line 237 of file hevcdsp_template.c.

#define IDCT_VAR32 (   H)    IDCT_VAR8(H)

Definition at line 238 of file hevcdsp_template.c.

#define IDCT (   H)
Value:
static void FUNC(idct_ ## H ## x ## H )(int16_t *coeffs, \
int col_limit) \
{ \
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; \
} \
}
static int shift(int a, int b)
Definition: sonic.c:82
#define BIT_DEPTH
#define src
Definition: vp8dsp.c:254
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
static void FUNC(ff_hevc_idct_4x4, BIT_DEPTH)
#define SCALE(dst, x)
if(ret)
int
#define H
Definition: pixlet.c:39
for(j=16;j >0;--j)

Definition at line 240 of file hevcdsp_template.c.

#define IDCT_DC (   H)
Value:
static void FUNC(idct_ ## H ## x ## H ## _dc)(int16_t *coeffs) \
{ \
int i, j; \
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; \
} \
} \
}
static int shift(int a, int b)
Definition: sonic.c:82
#define BIT_DEPTH
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
static void FUNC(ff_hevc_idct_4x4, BIT_DEPTH)
int
#define H
Definition: pixlet.c:39
static const double coeff[2][5]
Definition: vf_owdenoise.c:72
for(j=16;j >0;--j)

Definition at line 265 of file hevcdsp_template.c.

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

Definition at line 322 of file hevcdsp_template.c.

Referenced by sao_edge_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])
#define src
Definition: vp8dsp.c:254
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
#define stride

Definition at line 607 of file hevcdsp_template.c.

Referenced by put_hevc_qpel_bi_h(), put_hevc_qpel_bi_hv(), put_hevc_qpel_bi_v(), put_hevc_qpel_bi_w_h(), put_hevc_qpel_bi_w_hv(), put_hevc_qpel_bi_w_v(), put_hevc_qpel_h(), put_hevc_qpel_hv(), put_hevc_qpel_uni_h(), put_hevc_qpel_uni_hv(), put_hevc_qpel_uni_v(), put_hevc_qpel_uni_w_h(), put_hevc_qpel_uni_w_hv(), put_hevc_qpel_uni_w_v(), and put_hevc_qpel_v().

#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])
#define src
Definition: vp8dsp.c:254
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
#define stride

Definition at line 1064 of file hevcdsp_template.c.

Referenced by put_hevc_epel_bi_h(), put_hevc_epel_bi_hv(), put_hevc_epel_bi_v(), put_hevc_epel_bi_w_h(), put_hevc_epel_bi_w_hv(), put_hevc_epel_bi_w_v(), put_hevc_epel_h(), put_hevc_epel_hv(), put_hevc_epel_uni_h(), put_hevc_epel_uni_hv(), put_hevc_epel_uni_v(), put_hevc_epel_uni_w_h(), put_hevc_epel_uni_w_hv(), put_hevc_epel_uni_w_v(), and put_hevc_epel_v().

#define P3   pix[-4 * xstride]

Definition at line 1497 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define P2   pix[-3 * xstride]

Definition at line 1498 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define P1   pix[-2 * xstride]

Definition at line 1499 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define P0   pix[-1 * xstride]

Definition at line 1500 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q0   pix[0 * xstride]

Definition at line 1501 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q1   pix[1 * xstride]

Definition at line 1502 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q2   pix[2 * xstride]

Definition at line 1503 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define Q3   pix[3 * xstride]

Definition at line 1504 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1507 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1508 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1509 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1510 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1511 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1512 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1513 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1514 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

Function Documentation

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.

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

Definition at line 61 of file hevcdsp_template.c.

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

Definition at line 67 of file hevcdsp_template.c.

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

Definition at line 73 of file hevcdsp_template.c.

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

Definition at line 79 of file hevcdsp_template.c.

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

Definition at line 85 of file hevcdsp_template.c.

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

Definition at line 107 of file hevcdsp_template.c.

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

Definition at line 149 of file hevcdsp_template.c.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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().

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().

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.

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.

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.

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.