mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 12:50:49 +08:00
Test Name A55-gcc-11 M1-clang A76-gcc-12 A510-clang X3-clang ------------------------------------------------------------------------------------------------------------------- add_bytes_l2_4096_neon 1807.2 ( 2.01x) 1.6 ( 1.94x) 333.0 ( 6.35x) 1058.2 ( 2.34x) 214.3 ( 1.99x) add_paeth_prediction_3_neon 33036.1 ( 2.41x) 145.1 ( 1.66x) 20443.3 ( 1.97x) 35225.1 ( 1.23x) 19420.8 ( 1.05x) add_paeth_prediction_4_neon 24368.6 ( 3.26x) 106.7 ( 2.01x) 15163.8 ( 2.77x) 26454.7 ( 1.62x) 14319.0 ( 1.35x) add_paeth_prediction_6_neon 17900.6 ( 4.44x) 72.0 ( 2.70x) 10214.3 ( 4.20x) 18296.9 ( 2.27x) 9693.1 ( 1.97x) add_paeth_prediction_8_neon 12615.4 ( 6.31x) 54.1 ( 2.58x) 7706.0 ( 5.45x) 13733.3 ( 2.94x) 7272.6 ( 2.63x) Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
49 lines
1.7 KiB
C
49 lines
1.7 KiB
C
/*
|
|
* PNG image format
|
|
* Copyright (c) 2008 Loren Merrit <lorenm@u.washington.edu>
|
|
*
|
|
* This file is part of FFmpeg.
|
|
*
|
|
* FFmpeg is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* FFmpeg is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with FFmpeg; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef AVCODEC_PNGDSP_H
|
|
#define AVCODEC_PNGDSP_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "libavutil/attributes_internal.h"
|
|
|
|
typedef struct PNGDSPContext {
|
|
void (*add_bytes_l2)(uint8_t *dst,
|
|
const uint8_t *src1 /* align 16 */,
|
|
const uint8_t *src2, int w);
|
|
|
|
/* this might write to dst[w] */
|
|
void (*add_paeth_prediction)(uint8_t *dst, const uint8_t *src,
|
|
const uint8_t *top, int w, int bpp);
|
|
} PNGDSPContext;
|
|
|
|
FF_VISIBILITY_PUSH_HIDDEN
|
|
void ff_png_add_paeth_prediction(uint8_t *dst, const uint8_t *src,
|
|
const uint8_t *top, int w, int bpp);
|
|
|
|
void ff_pngdsp_init(PNGDSPContext *dsp);
|
|
void ff_pngdsp_init_aarch64(PNGDSPContext *dsp);
|
|
void ff_pngdsp_init_x86(PNGDSPContext *dsp);
|
|
FF_VISIBILITY_POP_HIDDEN
|
|
|
|
#endif /* AVCODEC_PNGDSP_H */
|