FFmpeg
Macros | Functions | Variables
hevc_mc_bi_lsx.c File Reference
#include "libavutil/loongarch/loongson_intrinsics.h"
#include "hevcdsp_lsx.h"

Go to the source code of this file.

Macros

#define BI_MC_COPY(WIDTH)
 
#define BI_MC(PEL, DIR, WIDTH, TAP, DIR1, FILT_DIR)
 
#define BI_MC_HV(PEL, WIDTH, TAP)
 

Functions

static av_always_inline __m128i hevc_bi_rnd_clip (__m128i in0, __m128i vec0, __m128i in1, __m128i vec1)
 
static void hevc_bi_copy_4w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_6w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_8w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_12w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_48w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_bi_copy_64w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void hevc_hz_8t_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hz_8t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hz_8t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hz_8t_48w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hz_8t_64w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static av_always_inline void hevc_vt_8t_8w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static av_always_inline void hevc_vt_8t_16multx2mult_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height, int32_t width)
 
static void hevc_vt_8t_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_8t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_8t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_8t_48w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_8t_64w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static av_always_inline void hevc_hv_8t_8multx1mult_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height, int32_t width)
 
static void hevc_hv_8t_8w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_8t_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_8t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_8t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_8t_48w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_8t_64w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hz_4t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hz_4t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_4t_12w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_4t_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_4t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_vt_4t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void hevc_hv_4t_6w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static av_always_inline void hevc_hv_4t_8x2_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y)
 
static av_always_inline void hevc_hv_4t_8multx4_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t width8mult)
 
static av_always_inline void hevc_hv_4t_8x6_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y)
 
static av_always_inline void hevc_hv_4t_8multx4mult_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height, int32_t width)
 
static void hevc_hv_4t_8w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_4t_16w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_4t_24w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
static void hevc_hv_4t_32w_lsx (const uint8_t *src0_ptr, int32_t src_stride, const int16_t *src1_ptr, int32_t src2_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_x, const int8_t *filter_y, int32_t height)
 
 BI_MC_COPY (4)
 
 BI_MC_COPY (6)
 
 BI_MC_COPY (8)
 
 BI_MC_COPY (12)
 
 BI_MC_COPY (16)
 
 BI_MC_COPY (24)
 
 BI_MC_COPY (32)
 
 BI_MC_COPY (48)
 
 BI_MC_COPY (64)
 
 BI_MC (qpel, h, 16, 8, hz, mx)
 
 BI_MC (qpel, h, 24, 8, hz, mx)
 
 BI_MC (qpel, h, 32, 8, hz, mx)
 
 BI_MC (qpel, h, 48, 8, hz, mx)
 
 BI_MC (qpel, h, 64, 8, hz, mx)
 
 BI_MC (qpel, v, 8, 8, vt, my)
 
 BI_MC (qpel, v, 16, 8, vt, my)
 
 BI_MC (qpel, v, 24, 8, vt, my)
 
 BI_MC (qpel, v, 32, 8, vt, my)
 
 BI_MC (qpel, v, 48, 8, vt, my)
 
 BI_MC (qpel, v, 64, 8, vt, my)
 
 BI_MC (epel, h, 24, 4, hz, mx)
 
 BI_MC (epel, h, 32, 4, hz, mx)
 
 BI_MC (epel, v, 12, 4, vt, my)
 
 BI_MC (epel, v, 16, 4, vt, my)
 
 BI_MC (epel, v, 24, 4, vt, my)
 
 BI_MC (epel, v, 32, 4, vt, my)
 
 BI_MC_HV (qpel, 8, 8)
 
 BI_MC_HV (qpel, 16, 8)
 
 BI_MC_HV (qpel, 24, 8)
 
 BI_MC_HV (qpel, 32, 8)
 
 BI_MC_HV (qpel, 48, 8)
 
 BI_MC_HV (qpel, 64, 8)
 
 BI_MC_HV (epel, 8, 4)
 
 BI_MC_HV (epel, 6, 4)
 
 BI_MC_HV (epel, 16, 4)
 
 BI_MC_HV (epel, 24, 4)
 
 BI_MC_HV (epel, 32, 4)
 

Variables

static const uint8_t ff_hevc_mask_arr [16 *2]
 

Macro Definition Documentation

◆ BI_MC_COPY

#define BI_MC_COPY (   WIDTH)
Value:
void ff_hevc_put_hevc_bi_pel_pixels##WIDTH##_8_lsx(uint8_t *dst, \
ptrdiff_t dst_stride, \
const uint8_t *src, \
ptrdiff_t src_stride, \
const int16_t *src_16bit, \
int height, \
intptr_t mx, \
intptr_t my, \
int width) \
{ \
hevc_bi_copy_##WIDTH##w_lsx(src, src_stride, src_16bit, MAX_PB_SIZE, \
dst, dst_stride, height); \
}

Definition at line 2189 of file hevc_mc_bi_lsx.c.

◆ BI_MC

#define BI_MC (   PEL,
  DIR,
  WIDTH,
  TAP,
  DIR1,
  FILT_DIR 
)
Value:
void ff_hevc_put_hevc_bi_##PEL##_##DIR##WIDTH##_8_lsx(uint8_t *dst, \
ptrdiff_t dst_stride, \
const uint8_t *src, \
ptrdiff_t src_stride, \
const int16_t *src_16bit, \
int height, \
intptr_t mx, \
intptr_t my, \
int width) \
{ \
const int8_t *filter = ff_hevc_##PEL##_filters[FILT_DIR]; \
\
hevc_##DIR1##_##TAP##t_##WIDTH##w_lsx(src, src_stride, src_16bit, \
MAX_PB_SIZE, dst, dst_stride, \
}

Definition at line 2216 of file hevc_mc_bi_lsx.c.

◆ BI_MC_HV

#define BI_MC_HV (   PEL,
  WIDTH,
  TAP 
)
Value:
void ff_hevc_put_hevc_bi_##PEL##_hv##WIDTH##_8_lsx(uint8_t *dst, \
ptrdiff_t dst_stride, \
const uint8_t *src, \
ptrdiff_t src_stride, \
const int16_t *src_16bit, \
int height, \
intptr_t mx, \
intptr_t my, \
int width) \
{ \
const int8_t *filter_x = ff_hevc_##PEL##_filters[mx]; \
const int8_t *filter_y = ff_hevc_##PEL##_filters[my]; \
\
hevc_hv_##TAP##t_##WIDTH##w_lsx(src, src_stride, src_16bit, \
MAX_PB_SIZE, dst, dst_stride, \
filter_x, filter_y, height); \
}

Definition at line 2257 of file hevc_mc_bi_lsx.c.

Function Documentation

◆ hevc_bi_rnd_clip()

static av_always_inline __m128i hevc_bi_rnd_clip ( __m128i  in0,
__m128i  vec0,
__m128i  in1,
__m128i  vec1 
)
static

◆ hevc_bi_copy_4w_lsx()

static void hevc_bi_copy_4w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 45 of file hevc_mc_bi_lsx.c.

◆ hevc_bi_copy_6w_lsx()

static void hevc_bi_copy_6w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 130 of file hevc_mc_bi_lsx.c.

◆ hevc_bi_copy_8w_lsx()

static void hevc_bi_copy_8w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 226 of file hevc_mc_bi_lsx.c.

Referenced by hevc_bi_copy_24w_lsx().

◆ hevc_bi_copy_12w_lsx()

static void hevc_bi_copy_12w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 311 of file hevc_mc_bi_lsx.c.

◆ hevc_bi_copy_16w_lsx()

static void hevc_bi_copy_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

◆ hevc_bi_copy_24w_lsx()

static void hevc_bi_copy_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 426 of file hevc_mc_bi_lsx.c.

◆ hevc_bi_copy_32w_lsx()

static void hevc_bi_copy_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 437 of file hevc_mc_bi_lsx.c.

Referenced by hevc_bi_copy_48w_lsx(), and hevc_bi_copy_64w_lsx().

◆ hevc_bi_copy_48w_lsx()

static void hevc_bi_copy_48w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 448 of file hevc_mc_bi_lsx.c.

◆ hevc_bi_copy_64w_lsx()

static void hevc_bi_copy_64w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 459 of file hevc_mc_bi_lsx.c.

◆ hevc_hz_8t_16w_lsx()

static void hevc_hz_8t_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 469 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hz_8t_32w_lsx(), and hevc_hz_8t_48w_lsx().

◆ hevc_hz_8t_24w_lsx()

static void hevc_hz_8t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 534 of file hevc_mc_bi_lsx.c.

◆ hevc_hz_8t_32w_lsx()

static void hevc_hz_8t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 588 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hz_8t_48w_lsx(), and hevc_hz_8t_64w_lsx().

◆ hevc_hz_8t_48w_lsx()

static void hevc_hz_8t_48w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 599 of file hevc_mc_bi_lsx.c.

◆ hevc_hz_8t_64w_lsx()

static void hevc_hz_8t_64w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 610 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_8t_8w_lsx()

static av_always_inline void hevc_vt_8t_8w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 622 of file hevc_mc_bi_lsx.c.

Referenced by hevc_vt_8t_24w_lsx().

◆ hevc_vt_8t_16multx2mult_lsx()

static av_always_inline void hevc_vt_8t_16multx2mult_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height,
int32_t  width 
)
static

◆ hevc_vt_8t_16w_lsx()

static void hevc_vt_8t_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 811 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_8t_24w_lsx()

static void hevc_vt_8t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 820 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_8t_32w_lsx()

static void hevc_vt_8t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 831 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_8t_48w_lsx()

static void hevc_vt_8t_48w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 840 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_8t_64w_lsx()

static void hevc_vt_8t_64w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 849 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_8multx1mult_lsx()

static av_always_inline void hevc_hv_8t_8multx1mult_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height,
int32_t  width 
)
static

◆ hevc_hv_8t_8w_lsx()

static void hevc_hv_8t_8w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 997 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_16w_lsx()

static void hevc_hv_8t_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1007 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_24w_lsx()

static void hevc_hv_8t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1017 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_32w_lsx()

static void hevc_hv_8t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1027 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_48w_lsx()

static void hevc_hv_8t_48w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1037 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_8t_64w_lsx()

static void hevc_hv_8t_64w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1047 of file hevc_mc_bi_lsx.c.

◆ hevc_hz_4t_24w_lsx()

static void hevc_hz_4t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1057 of file hevc_mc_bi_lsx.c.

◆ hevc_hz_4t_32w_lsx()

static void hevc_hz_4t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1160 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_4t_12w_lsx()

static void hevc_vt_4t_12w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1204 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_4t_16w_lsx()

static void hevc_vt_4t_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1293 of file hevc_mc_bi_lsx.c.

Referenced by hevc_vt_4t_32w_lsx().

◆ hevc_vt_4t_24w_lsx()

static void hevc_vt_4t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1365 of file hevc_mc_bi_lsx.c.

◆ hevc_vt_4t_32w_lsx()

static void hevc_vt_4t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1472 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_4t_6w_lsx()

static void hevc_hv_4t_6w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 1483 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_4t_8x2_lsx()

static av_always_inline void hevc_hv_4t_8x2_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y 
)
static

Definition at line 1671 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hv_4t_8w_lsx().

◆ hevc_hv_4t_8multx4_lsx()

static av_always_inline void hevc_hv_4t_8multx4_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  width8mult 
)
static

Definition at line 1742 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hv_4t_16w_lsx(), and hevc_hv_4t_8w_lsx().

◆ hevc_hv_4t_8x6_lsx()

static av_always_inline void hevc_hv_4t_8x6_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y 
)
static

Definition at line 1861 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hv_4t_8w_lsx().

◆ hevc_hv_4t_8multx4mult_lsx()

static av_always_inline void hevc_hv_4t_8multx4mult_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height,
int32_t  width 
)
static

◆ hevc_hv_4t_8w_lsx()

static void hevc_hv_4t_8w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 2133 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_4t_16w_lsx()

static void hevc_hv_4t_16w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 2154 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_4t_24w_lsx()

static void hevc_hv_4t_24w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 2169 of file hevc_mc_bi_lsx.c.

◆ hevc_hv_4t_32w_lsx()

static void hevc_hv_4t_32w_lsx ( const uint8_t *  src0_ptr,
int32_t  src_stride,
const int16_t *  src1_ptr,
int32_t  src2_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_x,
const int8_t *  filter_y,
int32_t  height 
)
static

Definition at line 2179 of file hevc_mc_bi_lsx.c.

◆ BI_MC_COPY() [1/9]

BI_MC_COPY ( )

◆ BI_MC_COPY() [2/9]

BI_MC_COPY ( )

◆ BI_MC_COPY() [3/9]

BI_MC_COPY ( )

◆ BI_MC_COPY() [4/9]

BI_MC_COPY ( 12  )

◆ BI_MC_COPY() [5/9]

BI_MC_COPY ( 16  )

◆ BI_MC_COPY() [6/9]

BI_MC_COPY ( 24  )

◆ BI_MC_COPY() [7/9]

BI_MC_COPY ( 32  )

◆ BI_MC_COPY() [8/9]

BI_MC_COPY ( 48  )

◆ BI_MC_COPY() [9/9]

BI_MC_COPY ( 64  )

◆ BI_MC() [1/17]

BI_MC ( qpel  ,
h  ,
16  ,
,
hz  ,
mx   
)

◆ BI_MC() [2/17]

BI_MC ( qpel  ,
h  ,
24  ,
,
hz  ,
mx   
)

◆ BI_MC() [3/17]

BI_MC ( qpel  ,
h  ,
32  ,
,
hz  ,
mx   
)

◆ BI_MC() [4/17]

BI_MC ( qpel  ,
h  ,
48  ,
,
hz  ,
mx   
)

◆ BI_MC() [5/17]

BI_MC ( qpel  ,
h  ,
64  ,
,
hz  ,
mx   
)

◆ BI_MC() [6/17]

BI_MC ( qpel  ,
,
,
,
vt  ,
my   
)

◆ BI_MC() [7/17]

BI_MC ( qpel  ,
,
16  ,
,
vt  ,
my   
)

◆ BI_MC() [8/17]

BI_MC ( qpel  ,
,
24  ,
,
vt  ,
my   
)

◆ BI_MC() [9/17]

BI_MC ( qpel  ,
,
32  ,
,
vt  ,
my   
)

◆ BI_MC() [10/17]

BI_MC ( qpel  ,
,
48  ,
,
vt  ,
my   
)

◆ BI_MC() [11/17]

BI_MC ( qpel  ,
,
64  ,
,
vt  ,
my   
)

◆ BI_MC() [12/17]

BI_MC ( epel  ,
h  ,
24  ,
,
hz  ,
mx   
)

◆ BI_MC() [13/17]

BI_MC ( epel  ,
h  ,
32  ,
,
hz  ,
mx   
)

◆ BI_MC() [14/17]

BI_MC ( epel  ,
,
12  ,
,
vt  ,
my   
)

◆ BI_MC() [15/17]

BI_MC ( epel  ,
,
16  ,
,
vt  ,
my   
)

◆ BI_MC() [16/17]

BI_MC ( epel  ,
,
24  ,
,
vt  ,
my   
)

◆ BI_MC() [17/17]

BI_MC ( epel  ,
,
32  ,
,
vt  ,
my   
)

◆ BI_MC_HV() [1/11]

BI_MC_HV ( qpel  ,
,
 
)

◆ BI_MC_HV() [2/11]

BI_MC_HV ( qpel  ,
16  ,
 
)

◆ BI_MC_HV() [3/11]

BI_MC_HV ( qpel  ,
24  ,
 
)

◆ BI_MC_HV() [4/11]

BI_MC_HV ( qpel  ,
32  ,
 
)

◆ BI_MC_HV() [5/11]

BI_MC_HV ( qpel  ,
48  ,
 
)

◆ BI_MC_HV() [6/11]

BI_MC_HV ( qpel  ,
64  ,
 
)

◆ BI_MC_HV() [7/11]

BI_MC_HV ( epel  ,
,
 
)

◆ BI_MC_HV() [8/11]

BI_MC_HV ( epel  ,
,
 
)

◆ BI_MC_HV() [9/11]

BI_MC_HV ( epel  ,
16  ,
 
)

◆ BI_MC_HV() [10/11]

BI_MC_HV ( epel  ,
24  ,
 
)

◆ BI_MC_HV() [11/11]

BI_MC_HV ( epel  ,
32  ,
 
)

Variable Documentation

◆ ff_hevc_mask_arr

const uint8_t ff_hevc_mask_arr[16 *2]
static
Initial value:
= {
0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
0, 1, 1, 2, 2, 3, 3, 4, 16, 17, 17, 18, 18, 19, 19, 20
}

Definition at line 26 of file hevc_mc_bi_lsx.c.

Referenced by hevc_hv_4t_6w_lsx(), hevc_hv_4t_8multx4_lsx(), hevc_hv_4t_8multx4mult_lsx(), hevc_hv_4t_8x2_lsx(), hevc_hv_4t_8x6_lsx(), hevc_hv_8t_8multx1mult_lsx(), hevc_hz_4t_24w_lsx(), hevc_hz_4t_32w_lsx(), hevc_hz_8t_16w_lsx(), and hevc_hz_8t_24w_lsx().

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
width
#define width
WIDTH
#define WIDTH
Definition: c93.c:44
height
#define height
MAX_PB_SIZE
#define MAX_PB_SIZE
Definition: hevcdsp.h:32
_
#define _
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418