FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
hevcdsp_template.c File Reference
#include "get_bits.h"
#include "bit_depth_template.c"
#include "hevcdsp.h"
#include "hevc.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 ADD_AND_SCALE(dst, x)   (dst) = av_clip_pixel((dst) + av_clip_int16(((x) + add) >> shift))
 
#define TR_4x4_LUMA(dst, src, step, assign)
 
#define TR_4(dst, src, dstep, sstep, assign)
 
#define TR_4_1(dst, src)   TR_4(dst, src, 4, 4, SCALE)
 
#define TR_4_2(dst, src)   TR_4(dst, src, 1, 1, ADD_AND_SCALE)
 
#define TR_8(dst, src, dstep, sstep, assign)
 
#define TR_16(dst, src, dstep, sstep, assign)
 
#define TR_32(dst, src, dstep, sstep, assign)
 
#define TR_8_1(dst, src)   TR_8(dst, src, 8, 8, SCALE)
 
#define TR_16_1(dst, src)   TR_16(dst, src, 16, 16, SCALE)
 
#define TR_32_1(dst, src)   TR_32(dst, src, 32, 32, SCALE)
 
#define TR_8_2(dst, src)   TR_8(dst, src, 1, 1, ADD_AND_SCALE)
 
#define TR_16_2(dst, src)   TR_16(dst, src, 1, 1, ADD_AND_SCALE)
 
#define TR_32_2(dst, src)   TR_32(dst, src, 1, 1, ADD_AND_SCALE)
 
#define IT32x32_even(i, w)   ( src[ 0*w] * transform[ 0][i] ) + ( src[16*w] * transform[16][i] )
 
#define IT32x32_odd(i, w)   ( src[ 8*w] * transform[ 8][i] ) + ( src[24*w] * transform[24][i] )
 
#define IT16x16(i, w)   ( src[ 4*w] * transform[ 4][i] ) + ( src[12*w] * transform[12][i] ) + ( src[20*w] * transform[20][i] ) + ( src[28*w] * transform[28][i] )
 
#define IT8x8(i, w)
 
#define IT4x4(i, w)
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define CMP(a, b)   ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
 
#define QPEL_FILTER_1(src, stride)
 
#define QPEL_FILTER_2(src, stride)
 
#define QPEL_FILTER_3(src, stride)
 
#define PUT_HEVC_QPEL_H(H)
 
#define PUT_HEVC_QPEL_V(V)
 
#define PUT_HEVC_QPEL_HV(H, V)
 
#define EPEL_FILTER(src, stride)   (filter_0*src[x-stride] + filter_1*src[x] + filter_2*src[x+stride] + filter_3*src[x+2*stride])
 
#define P3   pix[-4*xstride]
 
#define P2   pix[-3*xstride]
 
#define P1   pix[-2*xstride]
 
#define P0   pix[-xstride]
 
#define Q0   pix[0]
 
#define Q1   pix[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[-xstride+3*ystride]
 
#define TQ0   pix[3*ystride]
 
#define TQ1   pix[xstride+3*ystride]
 
#define TQ2   pix[2*xstride+3*ystride]
 
#define TQ3   pix[3*xstride+3*ystride]
 

Functions

static void FUNC() put_pcm (uint8_t *_dst, ptrdiff_t _stride, int size, GetBitContext *gb, int pcm_bit_depth)
 
static void FUNC() transquant_bypass4x4 (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transquant_bypass8x8 (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transquant_bypass16x16 (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transquant_bypass32x32 (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_skip (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_4x4_luma_add (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_4x4_add (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_8x8_add (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_16x16_add (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() transform_32x32_add (uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
static void FUNC() sao_band_filter (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int width, int height, int c_idx, int class)
 
static void FUNC() sao_band_filter_0 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_1 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_2 (uint8_t *dst, uint8_t *src, ptrdiff_t stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_band_filter_3 (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int width, int height, int c_idx)
 
static void FUNC() sao_edge_filter_0 (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_1 (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_2 (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() sao_edge_filter_3 (uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t vert_edge, uint8_t horiz_edge, uint8_t diag_edge)
 
static void FUNC() put_hevc_qpel_pixels (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_pixels (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_h (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_v (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_hevc_epel_hv (int16_t *dst, ptrdiff_t dststride, uint8_t *_src, ptrdiff_t _srcstride, int width, int height, int mx, int my, int16_t *mcbuffer)
 
static void FUNC() put_unweighted_pred (uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
 
static void FUNC() put_weighted_pred_avg (uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
 
static void FUNC() weighted_pred (uint8_t denom, int16_t wlxFlag, int16_t olxFlag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src, ptrdiff_t srcstride, int width, int height)
 
static void FUNC() weighted_pred_avg (uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, int16_t ol0Flag, int16_t ol1Flag, uint8_t *_dst, ptrdiff_t _dststride, int16_t *src1, int16_t *src2, ptrdiff_t srcstride, int width, int height)
 
static void FUNC() hevc_loop_filter_luma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int *_beta, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
static void FUNC() hevc_loop_filter_chroma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
static void FUNC() hevc_h_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_chroma (uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_h_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int *beta, int *tc, uint8_t *no_p, uint8_t *no_q)
 
static void FUNC() hevc_v_loop_filter_luma (uint8_t *pix, ptrdiff_t stride, int *beta, int *tc, uint8_t *no_p, uint8_t *no_q)
 

Macro Definition Documentation

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

Definition at line 28 of file hevcdsp_template.c.

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

Definition at line 29 of file hevcdsp_template.c.

Referenced by avfilter_register_all(), and transform_4x4_luma_add().

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

Definition at line 30 of file hevcdsp_template.c.

Referenced by transform_4x4_luma_add().

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

Referenced by transform_4x4_luma_add().

#define TR_4 (   dst,
  src,
  dstep,
  sstep,
  assign 
)
Value:
do { \
const int e0 = transform[8*0][0] * src[0*sstep] + \
transform[8*2][0] * src[2*sstep]; \
const int e1 = transform[8*0][1] * src[0*sstep] + \
transform[8*2][1] * src[2*sstep]; \
const int o0 = transform[8*1][0] * src[1*sstep] + \
transform[8*3][0] * src[3*sstep]; \
const int o1 = transform[8*1][1] * src[1*sstep] + \
transform[8*3][1] * src[3*sstep]; \
\
assign(dst[0*dstep], e0 + o0); \
assign(dst[1*dstep], e1 + o1); \
assign(dst[2*dstep], e1 - o1); \
assign(dst[3*dstep], e0 - o0); \
} while (0)

Definition at line 166 of file hevcdsp_template.c.

#define TR_4_1 (   dst,
  src 
)    TR_4(dst, src, 4, 4, SCALE)

Definition at line 182 of file hevcdsp_template.c.

Referenced by transform_4x4_add().

#define TR_4_2 (   dst,
  src 
)    TR_4(dst, src, 1, 1, ADD_AND_SCALE)

Definition at line 183 of file hevcdsp_template.c.

Referenced by transform_4x4_add().

#define TR_8 (   dst,
  src,
  dstep,
  sstep,
  assign 
)
Value:
do { \
int i, j; \
int e_8[4]; \
int o_8[4] = { 0 }; \
for (i = 0; i < 4; i++) \
for (j = 1; j < 8; j += 2) \
o_8[i] += transform[4*j][i] * src[j*sstep]; \
TR_4(e_8, src, 1, 2*sstep, SET); \
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 208 of file hevcdsp_template.c.

#define TR_16 (   dst,
  src,
  dstep,
  sstep,
  assign 
)
Value:
do { \
int i, j; \
int e_16[8]; \
int o_16[8] = { 0 }; \
for (i = 0; i < 8; i++) \
for (j = 1; j < 16; j += 2) \
o_16[i] += transform[2*j][i] * src[j*sstep]; \
TR_8(e_16, src, 1, 2*sstep, SET); \
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 hevcdsp_template.c.

#define TR_32 (   dst,
  src,
  dstep,
  sstep,
  assign 
)
Value:
do { \
int i, j; \
int e_32[16]; \
int o_32[16] = { 0 }; \
for (i = 0; i < 16; i++) \
for (j = 1; j < 32; j += 2) \
o_32[i] += transform[j][i] * src[j*sstep]; \
TR_16(e_32, src, 1, 2*sstep, SET); \
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 238 of file hevcdsp_template.c.

#define TR_8_1 (   dst,
  src 
)    TR_8(dst, src, 8, 8, SCALE)

Definition at line 254 of file hevcdsp_template.c.

Referenced by transform_8x8_add().

#define TR_16_1 (   dst,
  src 
)    TR_16(dst, src, 16, 16, SCALE)

Definition at line 255 of file hevcdsp_template.c.

Referenced by transform_16x16_add().

#define TR_32_1 (   dst,
  src 
)    TR_32(dst, src, 32, 32, SCALE)

Definition at line 256 of file hevcdsp_template.c.

Referenced by transform_32x32_add().

#define TR_8_2 (   dst,
  src 
)    TR_8(dst, src, 1, 1, ADD_AND_SCALE)

Definition at line 258 of file hevcdsp_template.c.

Referenced by transform_8x8_add().

#define TR_16_2 (   dst,
  src 
)    TR_16(dst, src, 1, 1, ADD_AND_SCALE)

Definition at line 259 of file hevcdsp_template.c.

Referenced by transform_16x16_add().

#define TR_32_2 (   dst,
  src 
)    TR_32(dst, src, 1, 1, ADD_AND_SCALE)

Definition at line 260 of file hevcdsp_template.c.

Referenced by transform_32x32_add().

#define IT32x32_even (   i,
 
)    ( src[ 0*w] * transform[ 0][i] ) + ( src[16*w] * transform[16][i] )
#define IT32x32_odd (   i,
 
)    ( src[ 8*w] * transform[ 8][i] ) + ( src[24*w] * transform[24][i] )
#define IT16x16 (   i,
 
)    ( src[ 4*w] * transform[ 4][i] ) + ( src[12*w] * transform[12][i] ) + ( src[20*w] * transform[20][i] ) + ( src[28*w] * transform[28][i] )
#define IT8x8 (   i,
 
)
Value:
( src[ 2*w] * transform[ 2][i] ) + ( src[ 6*w] * transform[ 6][i] ) + ( src[10*w] * transform[10][i] ) + ( src[14*w] * transform[14][i] ) + \
( src[18*w] * transform[18][i] ) + ( src[22*w] * transform[22][i] ) + ( src[26*w] * transform[26][i] ) + ( src[30*w] * transform[30][i] )
#define IT4x4 (   i,
 
)
Value:
( src[ 1*w] * transform[ 1][i] ) + ( src[ 3*w] * transform[ 3][i] ) + ( src[ 5*w] * transform[ 5][i] ) + ( src[ 7*w] * transform[ 7][i] ) + \
( src[ 9*w] * transform[ 9][i] ) + ( src[11*w] * transform[11][i] ) + ( src[13*w] * transform[13][i] ) + ( src[15*w] * transform[15][i] ) + \
( src[17*w] * transform[17][i] ) + ( src[19*w] * transform[19][i] ) + ( src[21*w] * transform[21][i] ) + ( src[23*w] * transform[23][i] ) + \
( src[25*w] * transform[25][i] ) + ( src[27*w] * transform[27][i] ) + ( src[29*w] * transform[29][i] ) + ( src[31*w] * transform[31][i] )
#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
#define CMP (   a,
  b 
)    ((a) > (b) ? 1 : ((a) == (b) ? 0 : -1))
#define QPEL_FILTER_1 (   src,
  stride 
)
Value:
(-src[x-3*stride] + 4*src[x-2*stride] - 10*src[x-stride] + 58*src[x] + \
17*src[x+stride] - 5*src[x+2*stride] + 1*src[x+3*stride])

Definition at line 829 of file hevcdsp_template.c.

#define QPEL_FILTER_2 (   src,
  stride 
)
Value:
(-src[x-3*stride] + 4*src[x-2*stride] - 11*src[x-stride] + 40*src[x] + \
40*src[x+stride] - 11*src[x+2*stride] + 4*src[x+3*stride] - src[x+4*stride])

Definition at line 832 of file hevcdsp_template.c.

#define QPEL_FILTER_3 (   src,
  stride 
)
Value:
(src[x-2*stride] - 5*src[x-stride] + 17*src[x] + 58*src[x+stride] \
- 10*src[x+2*stride] + 4*src[x+3*stride] - src[x+4*stride])

Definition at line 835 of file hevcdsp_template.c.

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

Definition at line 840 of file hevcdsp_template.c.

#define PUT_HEVC_QPEL_V (   V)
Value:
static void FUNC(put_hevc_qpel_v ## V)(int16_t *dst, ptrdiff_t dststride, \
uint8_t *_src, ptrdiff_t _srcstride, \
int width, int height, \
int16_t* mcbuffer) \
{ \
int x, y; \
pixel *src = (pixel*)_src; \
ptrdiff_t srcstride = _srcstride / sizeof(pixel); \
for (y = 0; y < height; y++) { \
for (x = 0; x < width; x++) \
dst[x] = QPEL_FILTER_ ## V (src, srcstride) >> (BIT_DEPTH - 8); \
src += srcstride; \
dst += dststride; \
} \
}

Definition at line 858 of file hevcdsp_template.c.

#define PUT_HEVC_QPEL_HV (   H,
  V 
)
Value:
static void FUNC(put_hevc_qpel_h ## H ## v ## V)(int16_t *dst, ptrdiff_t dststride, \
uint8_t *_src, ptrdiff_t _srcstride,\
int width, int height, \
int16_t* mcbuffer) \
{ \
int x, y; \
pixel *src = (pixel*)_src; \
ptrdiff_t srcstride = _srcstride / sizeof(pixel); \
\
int16_t tmp_array[(MAX_PB_SIZE + 7)*MAX_PB_SIZE]; \
int16_t *tmp = tmp_array; \
\
src -= ff_hevc_qpel_extra_before[V] * srcstride; \
for (y = 0; y < height + ff_hevc_qpel_extra[V]; y++) { \
for (x = 0; x < width; x++) \
tmp[x] = QPEL_FILTER_ ## H (src, 1) >> (BIT_DEPTH - 8); \
src += srcstride; \
tmp += MAX_PB_SIZE; \
} \
\
tmp = tmp_array + ff_hevc_qpel_extra_before[V] * MAX_PB_SIZE; \
for (y = 0; y < height; y++) { \
for (x = 0; x < width; x++) \
dst[x] = QPEL_FILTER_ ## V (tmp, MAX_PB_SIZE) >> 6; \
tmp += MAX_PB_SIZE; \
dst += dststride; \
} \
}

Definition at line 876 of file hevcdsp_template.c.

#define EPEL_FILTER (   src,
  stride 
)    (filter_0*src[x-stride] + filter_1*src[x] + filter_2*src[x+stride] + filter_3*src[x+2*stride])

Definition at line 942 of file hevcdsp_template.c.

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

#define P3   pix[-4*xstride]

Definition at line 1148 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define P2   pix[-3*xstride]

Definition at line 1149 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define P1   pix[-2*xstride]

Definition at line 1150 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define P0   pix[-xstride]

Definition at line 1151 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q0   pix[0]

Definition at line 1152 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q1   pix[xstride]

Definition at line 1153 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_chroma(), and hevc_loop_filter_luma().

#define Q2   pix[2*xstride]

Definition at line 1154 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define Q3   pix[3*xstride]

Definition at line 1155 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1158 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1159 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1160 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1161 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define TQ0   pix[3*ystride]

Definition at line 1162 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

#define TQ1   pix[xstride+3*ystride]

Definition at line 1163 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1164 of file hevcdsp_template.c.

Referenced by hevc_loop_filter_luma().

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

Definition at line 1165 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  size,
GetBitContext gb,
int  pcm_bit_depth 
)
static

Definition at line 32 of file hevcdsp_template.c.

static void FUNC() transquant_bypass4x4 ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 46 of file hevcdsp_template.c.

static void FUNC() transquant_bypass8x8 ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 62 of file hevcdsp_template.c.

static void FUNC() transquant_bypass16x16 ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 77 of file hevcdsp_template.c.

static void FUNC() transquant_bypass32x32 ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 93 of file hevcdsp_template.c.

static void FUNC() transform_skip ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 108 of file hevcdsp_template.c.

static void FUNC() transform_4x4_luma_add ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 128 of file hevcdsp_template.c.

static void FUNC() transform_4x4_add ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 185 of file hevcdsp_template.c.

static void FUNC() transform_8x8_add ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 262 of file hevcdsp_template.c.

static void FUNC() transform_16x16_add ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 285 of file hevcdsp_template.c.

static void FUNC() transform_32x32_add ( uint8_t _dst,
int16_t *  coeffs,
ptrdiff_t  _stride 
)
static

Definition at line 308 of file hevcdsp_template.c.

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

Definition at line 400 of file hevcdsp_template.c.

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

Definition at line 408 of file hevcdsp_template.c.

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

Definition at line 416 of file hevcdsp_template.c.

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

Definition at line 424 of file hevcdsp_template.c.

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

Definition at line 432 of file hevcdsp_template.c.

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

Definition at line 542 of file hevcdsp_template.c.

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

Definition at line 635 of file hevcdsp_template.c.

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

Definition at line 723 of file hevcdsp_template.c.

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

Definition at line 813 of file hevcdsp_template.c.

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

Definition at line 924 of file hevcdsp_template.c.

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

Definition at line 945 of file hevcdsp_template.c.

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

Definition at line 967 of file hevcdsp_template.c.

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

Definition at line 990 of file hevcdsp_template.c.

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

Definition at line 1031 of file hevcdsp_template.c.

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

Definition at line 1054 of file hevcdsp_template.c.

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

Definition at line 1080 of file hevcdsp_template.c.

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

Definition at line 1113 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 1167 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 1261 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,
int *  tc,
uint8_t no_p,
uint8_t no_q 
)
static

Definition at line 1296 of file hevcdsp_template.c.

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

Definition at line 1302 of file hevcdsp_template.c.

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

Definition at line 1308 of file hevcdsp_template.c.

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

Definition at line 1315 of file hevcdsp_template.c.