Go to the documentation of this file.
23 #ifndef AVCODEC_LOONGARCH_H264DSP_LOONGARCH_H
24 #define AVCODEC_LOONGARCH_H264DSP_LOONGARCH_H
36 const uint8_t nzc[15 * 8]);
39 const uint8_t nzc[15 * 8]);
42 const uint8_t nzc[15 * 8]);
45 const uint8_t nzc[15 * 8]);
48 const uint8_t nzc[15 * 8]);
51 int alpha,
int beta, int8_t *tc0);
53 int alpha,
int beta, int8_t *tc0);
59 int alpha,
int beta, int8_t *tc0);
61 int alpha,
int beta, int8_t *tc0);
68 int log2_denom,
int weight_dst,
69 int weight_src,
int offset_in);
72 int log2_denom,
int weight_dst,
73 int weight_src,
int offset);
76 int log2_denom,
int weight_dst,
77 int weight_src,
int offset);
79 int height,
int log2_denom,
80 int weight_src,
int offset_in);
82 int height,
int log2_denom,
83 int weight_src,
int offset);
85 int height,
int log2_denom,
86 int weight_src,
int offset);
90 int8_t
ref[2][40], int16_t
mv[2][40][2],
91 int bidir,
int edges,
int step,
92 int mask_mv0,
int mask_mv1,
int field);
96 int alpha,
int beta, int8_t *tc0);
98 int alpha,
int beta, int8_t *tc0);
100 int alpha,
int beta);
102 int alpha,
int beta);
103 void ff_biweight_h264_pixels16_8_lasx(
unsigned char *
dst,
unsigned char *
src,
105 int log2_denom,
int weight_dst,
106 int weight_src,
int offset_in);
107 void ff_biweight_h264_pixels8_8_lasx(
unsigned char *
dst,
unsigned char *
src,
109 int log2_denom,
int weight_dst,
110 int weight_src,
int offset);
111 void ff_weight_h264_pixels16_8_lasx(uint8_t *
src, ptrdiff_t
stride,
112 int height,
int log2_denom,
113 int weight_src,
int offset_in);
114 void ff_weight_h264_pixels8_8_lasx(uint8_t *
src, ptrdiff_t
stride,
115 int height,
int log2_denom,
116 int weight_src,
int offset);
120 void ff_h264_idct8_add_8_lasx(uint8_t *
dst, int16_t *
src,
int32_t dst_stride);
121 void ff_h264_idct8_dc_add_8_lasx(uint8_t *
dst, int16_t *
src,
123 void ff_h264_idct8_add4_8_lasx(uint8_t *
dst,
const int32_t *blk_offset,
125 const uint8_t nzc[15 * 8]);
127 int8_t
ref[2][40], int16_t
mv[2][40][2],
128 int bidir,
int edges,
int step,
129 int mask_mv0,
int mask_mv1,
int field);
130 #endif // #if HAVE_LASX
132 #endif // #ifndef AVCODEC_LOONGARCH_H264DSP_LOONGARCH_H
void ff_h264_idct8_add_8_lsx(uint8_t *dst, int16_t *src, int dst_stride)
void ff_h264_idct_add_8_lsx(uint8_t *dst, int16_t *src, int dst_stride)
void ff_h264_idct_dc_add_8_lsx(uint8_t *dst, int16_t *src, int dst_stride)
static const int8_t mv[256][2]
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
void ff_h264_loop_filter_strength_lasx(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field)
void ff_h264_v_lpf_luma_intra_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta)
uint8_t ptrdiff_t const uint8_t * _src
void ff_h264_h_lpf_luma_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta, int8_t *tc0)
void ff_weight_h264_pixels4_8_lsx(uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_src, int offset)
void ff_h264_idct8_dc_add_8_lsx(uint8_t *dst, int16_t *src, int dst_stride)
void ff_h264_luma_dc_dequant_idct_8_lsx(int16_t *_output, int16_t *_input, int qmul)
void ff_h264_h_lpf_chroma_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta, int8_t *tc0)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this field
void ff_h264_add_pixels4_8_lsx(uint8_t *_dst, int16_t *_src, int stride)
void ff_biweight_h264_pixels8_8_lsx(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_dst, int weight_src, int offset)
void ff_h264_loop_filter_strength_lsx(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field)
void ff_h264_h_lpf_luma_intra_8_lasx(uint8_t *data, ptrdiff_t img_width, int alpha_in, int beta_in)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
void ff_weight_h264_pixels8_8_lsx(uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_src, int offset)
void ff_h264_v_lpf_chroma_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta, int8_t *tc0)
void ff_h264_idct_add16_8_lsx(uint8_t *dst, const int32_t *blk_offset, int16_t *block, int32_t dst_stride, const uint8_t nzc[15 *8])
void ff_h264_v_lpf_luma_intra_8_lasx(uint8_t *data, ptrdiff_t img_width, int alpha_in, int beta_in)
void ff_weight_h264_pixels16_8_lsx(uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_src, int offset_in)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
void ff_h264_add_pixels8_8_lasx(uint8_t *_dst, int16_t *_src, int stride)
void ff_h264_v_lpf_luma_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta, int8_t *tc0)
void ff_h264_idct_add8_422_8_lsx(uint8_t **dst, const int32_t *blk_offset, int16_t *block, int32_t dst_stride, const uint8_t nzc[15 *8])
void ff_biweight_h264_pixels16_8_lsx(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_dst, int weight_src, int offset_in)
void ff_h264_add_pixels8_8_lsx(uint8_t *_dst, int16_t *_src, int stride)
void ff_h264_idct8_add4_8_lsx(uint8_t *dst, const int32_t *blk_offset, int16_t *block, int32_t dst_stride, const uint8_t nzc[15 *8])
void ff_h264_idct_add16_intra_8_lsx(uint8_t *dst, const int32_t *blk_offset, int16_t *block, int32_t dst_stride, const uint8_t nzc[15 *8])
void ff_h264_h_lpf_chroma_intra_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta)
void ff_h264_v_lpf_luma_8_lasx(uint8_t *data, ptrdiff_t img_width, int alpha_in, int beta_in, int8_t *tc)
void ff_h264_idct_add8_8_lsx(uint8_t **dst, const int32_t *blk_offset, int16_t *block, int32_t dst_stride, const uint8_t nzc[15 *8])
static int ref[MAX_W *MAX_W]
void ff_h264_v_lpf_chroma_intra_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta)
void ff_h264_add_pixels4_8_lasx(uint8_t *_dst, int16_t *_src, int stride)
static const int16_t alpha[]
void ff_h264_h_lpf_luma_8_lasx(uint8_t *data, ptrdiff_t img_width, int alpha_in, int beta_in, int8_t *tc)
The exact code depends on how similar the blocks are and how related they are to the block
void ff_h264_h_lpf_luma_intra_8_lsx(uint8_t *src, ptrdiff_t stride, int alpha, int beta)
void ff_biweight_h264_pixels4_8_lsx(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int height, int log2_denom, int weight_dst, int weight_src, int offset)