32 const uint16_t dct_offset[64])
34 for (
int i = 0;
i < 64; ++
i) {
60 for (
i = 0;
i < 8 * 8;
i++) {
68 sum += (
w *
b) * (
w *
b) >> 4;
77 for (
i = 0;
i < 8 * 8;
i++)
87 for (
i = 0;
i < 16;
i++) {
88 for (j = 0; j < 16; j += 8) {
99 pix += line_size - 16;
109 for (
i = 0;
i < 16;
i++) {
110 for (j = 0; j < 16; j += 8) {
112 register uint64_t x = *(uint64_t *)
pix;
114 s += sq[(x >> 8) & 0xff];
115 s += sq[(x >> 16) & 0xff];
116 s += sq[(x >> 24) & 0xff];
117 s += sq[(x >> 32) & 0xff];
118 s += sq[(x >> 40) & 0xff];
119 s += sq[(x >> 48) & 0xff];
120 s += sq[(x >> 56) & 0xff];
122 register uint32_t x = *(uint32_t *)
pix;
124 s += sq[(x >> 8) & 0xff];
125 s += sq[(x >> 16) & 0xff];
126 s += sq[(x >> 24) & 0xff];
127 x = *(uint32_t *) (
pix + 4);
129 s += sq[(x >> 8) & 0xff];
130 s += sq[(x >> 16) & 0xff];
131 s += sq[(x >> 24) & 0xff];
135 pix += line_size - 16;
143 memset(ptr -
w, ptr[0],
w);
152 int w,
int h,
int sides)
171 for (
i = 0;
i <
h;
i++)
175 for (
i = 0;
i <
h;
i++)
177 memcpy(last_line + (
i + 1) *
wrap, last_line,
width +
w +
w);
183 const uint8_t *restrict
src, ptrdiff_t src_wrap,
191 const uint8_t *restrict
src, ptrdiff_t src_wrap,
195 const uint8_t *s1, *s2;
203 d[0] = (s1[0] + s1[1] + s2[0] + s2[1] + 2) >> 2;
204 d[1] = (s1[2] + s1[3] + s2[2] + s2[3] + 2) >> 2;
205 d[2] = (s1[4] + s1[5] + s2[4] + s2[5] + 2) >> 2;
206 d[3] = (s1[6] + s1[7] + s2[6] + s2[7] + 2) >> 2;
212 d[0] = (s1[0] + s1[1] + s2[0] + s2[1] + 2) >> 2;
224 const uint8_t *restrict
src, ptrdiff_t src_wrap,
228 const uint8_t *s1, *s2, *s3, *s4;
238 d[0] = (s1[0] + s1[1] + s1[2] + s1[3] +
239 s2[0] + s2[1] + s2[2] + s2[3] +
240 s3[0] + s3[1] + s3[2] + s3[3] +
241 s4[0] + s4[1] + s4[2] + s4[3] + 8) >> 4;
255 const uint8_t *restrict
src, ptrdiff_t src_wrap,
263 for (
i = 0;
i < 8;
i++) {
268 *(
dst++) = (
tmp + 32) >> 6;
269 src += 8 - 8 * src_wrap;
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
av_cold void ff_mpegvideoencdsp_init_aarch64(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code.
Libavcodec external API header.
#define i(width, name, range_min, range_max)
void av_image_copy_plane(uint8_t *dst, int dst_linesize, const uint8_t *src, int src_linesize, int bytewidth, int height)
Copy image plane from src to dst.
static void scale(int *out, const int *in, const int w, const int h, const int shift)
static av_always_inline void draw_edges_lr(uint8_t *ptr, ptrdiff_t wrap, int width, int height, int w)
static void shrink22(uint8_t *restrict dst, ptrdiff_t dst_wrap, const uint8_t *restrict src, ptrdiff_t src_wrap, int width, int height)
static void denoise_dct_c(int16_t block[64], int dct_error_sum[64], const uint16_t dct_offset[64])
static int pix_sum_c(const uint8_t *pix, ptrdiff_t line_size)
av_cold void ff_mpegvideoencdsp_init(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
static void shrink44(uint8_t *restrict dst, ptrdiff_t dst_wrap, const uint8_t *restrict src, ptrdiff_t src_wrap, int width, int height)
static void draw_edges_8_c(uint8_t *buf, ptrdiff_t wrap, int width, int height, int w, int h, int sides)
static int pix_norm1_c(const uint8_t *pix, ptrdiff_t line_size)
static void add_8x8basis_c(int16_t rem[64], const int16_t basis[64], int scale)
static int try_8x8basis_c(const int16_t rem[64], const int16_t weight[64], const int16_t basis[64], int scale)
static void copy_plane_wrapper(uint8_t *restrict dst, ptrdiff_t dst_wrap, const uint8_t *restrict src, ptrdiff_t src_wrap, int width, int height)
static void shrink88(uint8_t *restrict dst, ptrdiff_t dst_wrap, const uint8_t *restrict src, ptrdiff_t src_wrap, int width, int height)
Macro definitions for various function/variable attributes.
EXTERN const uint32_t ff_square_tab[512]
static int16_t basis[64][64]
void ff_mpegvideoencdsp_init_ppc(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_riscv(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
void ff_mpegvideoencdsp_init_x86(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
av_cold void ff_mpegvideoencdsp_init_arm(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
av_cold void ff_mpegvideoencdsp_init_mips(MpegvideoEncDSPContext *c, AVCodecContext *avctx)
const h264_weight_func weight
main external API structure.