FFmpeg
Loading...
Searching...
No Matches
mpegvideoencdsp.h
Go to the documentation of this file.
1/*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#ifndef AVCODEC_MPEGVIDEOENCDSP_H
20#define AVCODEC_MPEGVIDEOENCDSP_H
21
22#include <stdint.h>
23
24#include "avcodec.h"
25
26#define BASIS_SHIFT 16
27#define RECON_SHIFT 6
28
29#define EDGE_TOP 1
30#define EDGE_BOTTOM 2
31
32typedef struct MpegvideoEncDSPContext {
33 void (*denoise_dct)(int16_t block[64], int dct_error_sum[64],
34 const uint16_t dct_offset[64]);
35
36 int (*try_8x8basis)(const int16_t rem[64], const int16_t weight[64],
37 const int16_t basis[64], int scale);
38 void (*add_8x8basis)(int16_t rem[64], const int16_t basis[64], int scale);
39
40 int (*pix_sum)(const uint8_t *pix, ptrdiff_t line_size);
41 int (*pix_norm1)(const uint8_t *pix, ptrdiff_t line_size);
42
43 void (*shrink[4])(uint8_t *restrict dst, ptrdiff_t dst_wrap,
44 const uint8_t *restrict src, ptrdiff_t src_wrap,
45 int width, int height);
46
47 void (*draw_edges)(uint8_t *buf, ptrdiff_t wrap, int width, int height,
48 int w, int h, int sides);
50
52 AVCodecContext *avctx);
54 AVCodecContext *avctx);
56 AVCodecContext *avctx);
58 AVCodecContext *avctx);
60 AVCodecContext *avctx);
62 AVCodecContext *avctx);
64 AVCodecContext *avctx);
65
66#endif /* AVCODEC_MPEGVIDEOENCDSP_H */
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition dsp.h:87
#define wrap(func)
Definition neontest.h:65
Libavcodec external API header.
static int16_t block[64]
Definition dct.c:125
static void scale(int *out, const int *in, const int w, const int h, const int shift)
Definition intra.c:278
uint8_t w
Definition llvidencdsp.c:39
static int16_t basis[64][64]
void ff_mpegvideoencdsp_init_ppc(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_arm(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_riscv(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_mips(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_x86(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_aarch64(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
enum AVPixelFormat pix
Definition ohcodec.c:55
const h264_weight_func weight
main external API structure.
Definition avcodec.h:443
void(* denoise_dct)(int16_t block[64], int dct_error_sum[64], const uint16_t dct_offset[64])
int(* pix_norm1)(const uint8_t *pix, ptrdiff_t line_size)
void(* shrink[4])(uint8_t *restrict dst, ptrdiff_t dst_wrap, const uint8_t *restrict src, ptrdiff_t src_wrap, int width, int height)
int(* try_8x8basis)(const int16_t rem[64], const int16_t weight[64], const int16_t basis[64], int scale)
int(* pix_sum)(const uint8_t *pix, ptrdiff_t line_size)
void(* draw_edges)(uint8_t *buf, ptrdiff_t wrap, int width, int height, int w, int h, int sides)
void(* add_8x8basis)(int16_t rem[64], const int16_t basis[64], int scale)
#define src
Definition vp8dsp.c:248
#define height
Definition dsp.h:89
#define width
Definition dsp.h:89
static double c[64]