25 #include <mlib_types.h>
26 #include <mlib_status.h>
28 #include <mlib_algebra.h>
29 #include <mlib_video.h>
38 mlib_VectorConvert_S16_U8_Mod((mlib_s16 *)block, (mlib_u8 *)pixels, 8);
50 mlib_VectorSub_S16_U8_Mod((mlib_s16 *)block, (mlib_u8 *)s1, (mlib_u8 *)s2, 8);
60 mlib_VideoAddBlock_U8_S16(pixels, (mlib_s16 *)block, line_size);
70 mlib_VideoCopyRef_U8_U8_16x8(dest, (uint8_t *)ref, stride);
74 mlib_VideoCopyRef_U8_U8_16x16(dest, (uint8_t *)ref, stride);
87 mlib_VideoInterpX_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
91 mlib_VideoInterpX_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
104 mlib_VideoInterpY_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
108 mlib_VideoInterpY_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
121 mlib_VideoInterpXY_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
125 mlib_VideoInterpXY_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
140 mlib_VideoCopyRef_U8_U8_8x4(dest, (uint8_t *)ref, stride);
144 mlib_VideoCopyRef_U8_U8_8x8(dest, (uint8_t *)ref, stride);
148 mlib_VideoCopyRef_U8_U8_8x16(dest, (uint8_t *)ref, stride);
161 mlib_VideoInterpX_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
165 mlib_VideoInterpX_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
169 mlib_VideoInterpX_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
182 mlib_VideoInterpY_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
186 mlib_VideoInterpY_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
190 mlib_VideoInterpY_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
203 mlib_VideoInterpXY_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
207 mlib_VideoInterpXY_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
211 mlib_VideoInterpXY_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
226 mlib_VideoCopyRefAve_U8_U8_16x8(dest, (uint8_t *)ref, stride);
230 mlib_VideoCopyRefAve_U8_U8_16x16(dest, (uint8_t *)ref, stride);
243 mlib_VideoInterpAveX_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
247 mlib_VideoInterpAveX_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
260 mlib_VideoInterpAveY_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
264 mlib_VideoInterpAveY_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
277 mlib_VideoInterpAveXY_U8_U8_16x8(dest, (uint8_t *)ref, stride, stride);
281 mlib_VideoInterpAveXY_U8_U8_16x16(dest, (uint8_t *)ref, stride, stride);
296 mlib_VideoCopyRefAve_U8_U8_8x4(dest, (uint8_t *)ref, stride);
300 mlib_VideoCopyRefAve_U8_U8_8x8(dest, (uint8_t *)ref, stride);
304 mlib_VideoCopyRefAve_U8_U8_8x16(dest, (uint8_t *)ref, stride);
317 mlib_VideoInterpAveX_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
321 mlib_VideoInterpAveX_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
325 mlib_VideoInterpAveX_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
338 mlib_VideoInterpAveY_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
342 mlib_VideoInterpAveY_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
346 mlib_VideoInterpAveY_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
359 mlib_VideoInterpAveXY_U8_U8_8x4(dest, (uint8_t *)ref, stride, stride);
363 mlib_VideoInterpAveXY_U8_U8_8x8(dest, (uint8_t *)ref, stride, stride);
367 mlib_VideoInterpAveXY_U8_U8_8x16(dest, (uint8_t *)ref, stride, stride);
379 mlib_VectorReverseByteOrder_U32_U32(dst, src, w);
389 mlib_VideoIDCT8x8_S16_S16 (data, data);
392 dest[0] = cm[data[0]];
393 dest[1] = cm[data[1]];
394 dest[2] = cm[data[2]];
395 dest[3] = cm[data[3]];
396 dest[4] = cm[data[4]];
397 dest[5] = cm[data[5]];
398 dest[6] = cm[data[6]];
399 dest[7] = cm[data[7]];
408 mlib_VideoIDCT8x8_S16_S16 (data, data);
409 mlib_VideoAddBlock_U8_S16(dest, (mlib_s16 *)data, line_size);
414 mlib_VideoIDCT8x8_S16_S16 (data, data);
419 mlib_VideoDCT8x8_S16_S16 (data, data);
429 if (!high_bit_depth) {
static void ff_idct_mlib(DCTELEM *data)
op_pixels_func put_pixels_tab[4][4]
Halfpel motion compensation with rounding (a+b+1)>>1.
static void put_pixels8_xy2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
int dct_algo
DCT algorithm, see FF_DCT_* below.
static void avg_pixels16_x2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
void(* idct_add)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
static void avg_pixels16_xy2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
static void diff_pixels_mlib(DCTELEM *restrict block, const uint8_t *s1, const uint8_t *s2, int line_size)
static void avg_pixels8_x2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void avg_pixels16_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
void MPV_common_init_mlib(MpegEncContext *s)
static void ff_fdct_mlib(DCTELEM *data)
void(* get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size)
op_pixels_func avg_pixels_tab[4][4]
Halfpel motion compensation with rounding (a+b+1)>>1.
static void put_pixels16_x2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void put_pixels8_x2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void avg_pixels8_xy2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
void(* add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size)
static void add_pixels_clamped_mlib(const DCTELEM *block, uint8_t *pixels, int line_size)
void(* bswap_buf)(uint32_t *dst, const uint32_t *src, int w)
void(* idct_put)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> clip to unsigned 8 bit -> dest.
op_pixels_func put_no_rnd_pixels_tab[4][4]
Halfpel motion compensation with no rounding (a+b)>>1.
void(* idct)(DCTELEM *block)
static void put_pixels8_y2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
int idct_algo
IDCT algorithm, see FF_IDCT_* below.
static void put_pixels16_y2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void avg_pixels8_y2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void put_pixels16_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
int idct_permutation_type
static void ff_idct_add_mlib(uint8_t *dest, int line_size, DCTELEM *data)
main external API structure.
static void get_pixels_mlib(DCTELEM *restrict block, const uint8_t *pixels, int line_size)
void(* diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride)
static void put_pixels8_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
static void put_pixels16_xy2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
DSPContext dsp
pointers for accelerated dsp functions
static void avg_pixels16_y2_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
struct AVCodecContext * avctx
void(* fdct)(DCTELEM *block)
static void avg_pixels8_mlib(uint8_t *dest, const uint8_t *ref, int stride, int height)
void dsputil_init_mlib(DSPContext *c, AVCodecContext *avctx)
static void bswap_buf_mlib(uint32_t *dst, const uint32_t *src, int w)
static void ff_idct_put_mlib(uint8_t *dest, int line_size, DCTELEM *data)