FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
vp9_lpf_msa.c File Reference
#include "libavcodec/vp9dsp.h"
#include "libavutil/mips/generic_macros_msa.h"
#include "vp9dsp_mips.h"

Go to the source code of this file.

Macros

#define VP9_LPF_FILTER4_8W(p1_in, p0_in, q0_in, q1_in, mask_in, hev_in,p1_out, p0_out, q0_out, q1_out)
 
#define VP9_LPF_FILTER4_4W(p1_in, p0_in, q0_in, q1_in, mask_in, hev_in,p1_out, p0_out, q0_out, q1_out)
 
#define VP9_FLAT4(p3_in, p2_in, p0_in, q0_in, q2_in, q3_in, flat_out)
 
#define VP9_FLAT5(p7_in, p6_in, p5_in, p4_in, p0_in, q0_in, q4_in,q5_in, q6_in, q7_in, flat_in, flat2_out)
 
#define VP9_FILTER8(p3_in, p2_in, p1_in, p0_in,q0_in, q1_in, q2_in, q3_in,p2_filt8_out, p1_filt8_out, p0_filt8_out,q0_filt8_out, q1_filt8_out, q2_filt8_out)
 
#define LPF_MASK_HEV(p3_in, p2_in, p1_in, p0_in,q0_in, q1_in, q2_in, q3_in,limit_in, b_limit_in, thresh_in,hev_out, mask_out, flat_out)
 

Functions

void ff_loop_filter_v_4_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_44_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_8_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_88_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_84_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_48_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static int32_t vp9_hz_lpf_t4_and_t8_16w (uint8_t *src, ptrdiff_t pitch, uint8_t *filter48, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static void vp9_hz_lpf_t16_16w (uint8_t *src, ptrdiff_t pitch, uint8_t *filter48)
 
void ff_loop_filter_v_16_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_v_16_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_4_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_44_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_8_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_88_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_84_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
void ff_loop_filter_h_48_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static void vp9_transpose_16x8_to_8x16 (uint8_t *input, int32_t in_pitch, uint8_t *output, int32_t out_pitch)
 
static void vp9_transpose_8x16_to_16x8 (uint8_t *input, int32_t in_pitch, uint8_t *output, int32_t out_pitch)
 
static void vp9_transpose_16x16 (uint8_t *input, int32_t in_pitch, uint8_t *output, int32_t out_pitch)
 
static int32_t vp9_vt_lpf_t4_and_t8_8w (uint8_t *src, uint8_t *filter48, uint8_t *src_org, int32_t pitch_org, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static int32_t vp9_vt_lpf_t16_8w (uint8_t *src, uint8_t *src_org, ptrdiff_t pitch, uint8_t *filter48)
 
void ff_loop_filter_h_16_8_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static int32_t vp9_vt_lpf_t4_and_t8_16w (uint8_t *src, uint8_t *filter48, uint8_t *src_org, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 
static int32_t vp9_vt_lpf_t16_16w (uint8_t *src, uint8_t *src_org, ptrdiff_t pitch, uint8_t *filter48)
 
void ff_loop_filter_h_16_16_msa (uint8_t *src, ptrdiff_t pitch, int32_t b_limit_ptr, int32_t limit_ptr, int32_t thresh_ptr)
 

Macro Definition Documentation

#define VP9_LPF_FILTER4_8W (   p1_in,
  p0_in,
  q0_in,
  q1_in,
  mask_in,
  hev_in,
  p1_out,
  p0_out,
  q0_out,
  q1_out 
)
#define VP9_LPF_FILTER4_4W (   p1_in,
  p0_in,
  q0_in,
  q1_in,
  mask_in,
  hev_in,
  p1_out,
  p0_out,
  q0_out,
  q1_out 
)
#define VP9_FLAT4 (   p3_in,
  p2_in,
  p0_in,
  q0_in,
  q2_in,
  q3_in,
  flat_out 
)
Value:
{ \
v16u8 tmp, p2_a_sub_p0, q2_a_sub_q0, p3_a_sub_p0, q3_a_sub_q0; \
v16u8 zero_in = { 0 }; \
\
tmp = __msa_ori_b(zero_in, 1); \
p2_a_sub_p0 = __msa_asub_u_b(p2_in, p0_in); \
q2_a_sub_q0 = __msa_asub_u_b(q2_in, q0_in); \
p3_a_sub_p0 = __msa_asub_u_b(p3_in, p0_in); \
q3_a_sub_q0 = __msa_asub_u_b(q3_in, q0_in); \
\
p2_a_sub_p0 = __msa_max_u_b(p2_a_sub_p0, q2_a_sub_q0); \
flat_out = __msa_max_u_b(p2_a_sub_p0, flat_out); \
p3_a_sub_p0 = __msa_max_u_b(p3_a_sub_p0, q3_a_sub_q0); \
flat_out = __msa_max_u_b(p3_a_sub_p0, flat_out); \
\
flat_out = (tmp < (v16u8) flat_out); \
flat_out = __msa_xori_b(flat_out, 0xff); \
flat_out = flat_out & (mask); \
}
static const uint16_t mask[17]
Definition: lzw.c:38

Definition at line 134 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_48_16_msa(), ff_loop_filter_h_84_16_msa(), ff_loop_filter_h_88_16_msa(), ff_loop_filter_h_8_8_msa(), ff_loop_filter_v_16_8_msa(), ff_loop_filter_v_48_16_msa(), ff_loop_filter_v_84_16_msa(), ff_loop_filter_v_88_16_msa(), ff_loop_filter_v_8_8_msa(), vp9_hz_lpf_t4_and_t8_16w(), vp9_vt_lpf_t4_and_t8_16w(), and vp9_vt_lpf_t4_and_t8_8w().

#define VP9_FLAT5 (   p7_in,
  p6_in,
  p5_in,
  p4_in,
  p0_in,
  q0_in,
  q4_in,
  q5_in,
  q6_in,
  q7_in,
  flat_in,
  flat2_out 
)
Value:
{ \
v16u8 tmp, zero_in = { 0 }; \
v16u8 p4_a_sub_p0, q4_a_sub_q0, p5_a_sub_p0, q5_a_sub_q0; \
v16u8 p6_a_sub_p0, q6_a_sub_q0, p7_a_sub_p0, q7_a_sub_q0; \
\
tmp = __msa_ori_b(zero_in, 1); \
p4_a_sub_p0 = __msa_asub_u_b(p4_in, p0_in); \
q4_a_sub_q0 = __msa_asub_u_b(q4_in, q0_in); \
p5_a_sub_p0 = __msa_asub_u_b(p5_in, p0_in); \
q5_a_sub_q0 = __msa_asub_u_b(q5_in, q0_in); \
p6_a_sub_p0 = __msa_asub_u_b(p6_in, p0_in); \
q6_a_sub_q0 = __msa_asub_u_b(q6_in, q0_in); \
p7_a_sub_p0 = __msa_asub_u_b(p7_in, p0_in); \
q7_a_sub_q0 = __msa_asub_u_b(q7_in, q0_in); \
\
p4_a_sub_p0 = __msa_max_u_b(p4_a_sub_p0, q4_a_sub_q0); \
flat2_out = __msa_max_u_b(p5_a_sub_p0, q5_a_sub_q0); \
flat2_out = __msa_max_u_b(p4_a_sub_p0, flat2_out); \
p6_a_sub_p0 = __msa_max_u_b(p6_a_sub_p0, q6_a_sub_q0); \
flat2_out = __msa_max_u_b(p6_a_sub_p0, flat2_out); \
p7_a_sub_p0 = __msa_max_u_b(p7_a_sub_p0, q7_a_sub_q0); \
flat2_out = __msa_max_u_b(p7_a_sub_p0, flat2_out); \
\
flat2_out = (tmp < (v16u8) flat2_out); \
flat2_out = __msa_xori_b(flat2_out, 0xff); \
flat2_out = flat2_out & flat_in; \
}

Definition at line 155 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_v_16_8_msa(), vp9_hz_lpf_t16_16w(), vp9_vt_lpf_t16_16w(), and vp9_vt_lpf_t16_8w().

#define VP9_FILTER8 (   p3_in,
  p2_in,
  p1_in,
  p0_in,
  q0_in,
  q1_in,
  q2_in,
  q3_in,
  p2_filt8_out,
  p1_filt8_out,
  p0_filt8_out,
  q0_filt8_out,
  q1_filt8_out,
  q2_filt8_out 
)
#define LPF_MASK_HEV (   p3_in,
  p2_in,
  p1_in,
  p0_in,
  q0_in,
  q1_in,
  q2_in,
  q3_in,
  limit_in,
  b_limit_in,
  thresh_in,
  hev_out,
  mask_out,
  flat_out 
)

Function Documentation

void ff_loop_filter_v_4_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 262 of file vp9_lpf_msa.c.

void ff_loop_filter_v_44_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 291 of file vp9_lpf_msa.c.

void ff_loop_filter_v_8_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 321 of file vp9_lpf_msa.c.

void ff_loop_filter_v_88_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 395 of file vp9_lpf_msa.c.

void ff_loop_filter_v_84_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 474 of file vp9_lpf_msa.c.

void ff_loop_filter_v_48_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 545 of file vp9_lpf_msa.c.

static int32_t vp9_hz_lpf_t4_and_t8_16w ( uint8_t src,
ptrdiff_t  pitch,
uint8_t filter48,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)
static

Definition at line 617 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_v_16_16_msa().

static void vp9_hz_lpf_t16_16w ( uint8_t src,
ptrdiff_t  pitch,
uint8_t filter48 
)
static

Definition at line 692 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_v_16_16_msa().

void ff_loop_filter_v_16_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1024 of file vp9_lpf_msa.c.

void ff_loop_filter_v_16_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1040 of file vp9_lpf_msa.c.

void ff_loop_filter_h_4_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1264 of file vp9_lpf_msa.c.

void ff_loop_filter_h_44_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1293 of file vp9_lpf_msa.c.

void ff_loop_filter_h_8_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1340 of file vp9_lpf_msa.c.

void ff_loop_filter_h_88_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1420 of file vp9_lpf_msa.c.

void ff_loop_filter_h_84_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1534 of file vp9_lpf_msa.c.

void ff_loop_filter_h_48_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 1638 of file vp9_lpf_msa.c.

static void vp9_transpose_16x8_to_8x16 ( uint8_t input,
int32_t  in_pitch,
uint8_t output,
int32_t  out_pitch 
)
static

Definition at line 1744 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_8_msa().

static void vp9_transpose_8x16_to_16x8 ( uint8_t input,
int32_t  in_pitch,
uint8_t output,
int32_t  out_pitch 
)
static

Definition at line 1770 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_8_msa().

static void vp9_transpose_16x16 ( uint8_t input,
int32_t  in_pitch,
uint8_t output,
int32_t  out_pitch 
)
static

Definition at line 1783 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_16_msa().

static int32_t vp9_vt_lpf_t4_and_t8_8w ( uint8_t src,
uint8_t filter48,
uint8_t src_org,
int32_t  pitch_org,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)
static

Definition at line 1843 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_8_msa().

static int32_t vp9_vt_lpf_t16_8w ( uint8_t src,
uint8_t src_org,
ptrdiff_t  pitch,
uint8_t filter48 
)
static

Definition at line 1915 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_8_msa().

void ff_loop_filter_h_16_8_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 2139 of file vp9_lpf_msa.c.

static int32_t vp9_vt_lpf_t4_and_t8_16w ( uint8_t src,
uint8_t filter48,
uint8_t src_org,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)
static

Definition at line 2164 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_16_msa().

static int32_t vp9_vt_lpf_t16_16w ( uint8_t src,
uint8_t src_org,
ptrdiff_t  pitch,
uint8_t filter48 
)
static

Definition at line 2249 of file vp9_lpf_msa.c.

Referenced by ff_loop_filter_h_16_16_msa().

void ff_loop_filter_h_16_16_msa ( uint8_t src,
ptrdiff_t  pitch,
int32_t  b_limit_ptr,
int32_t  limit_ptr,
int32_t  thresh_ptr 
)

Definition at line 2576 of file vp9_lpf_msa.c.