Ben Avison
20cb43ea8b
checkasm: Add vc1dsp in-loop deblocking filter tests
...
Note that the benchmarking results for these functions are highly dependent
upon the input data. Therefore, each function is benchmarked twice,
corresponding to the best and worst case complexity of the reference C
implementation. The performance of a real stream decode will fall somewhere
between these two extremes.
Signed-off-by: Ben Avison <bavison@riscosopen.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2022-04-01 10:03:33 +03:00
Martin Storsjö
a78f136f3f
configure: Use a separate config_components.h header for $ALL_COMPONENTS
...
This avoids unnecessary rebuilds of most source files if only the
list of enabled components has changed, but not the other properties
of the build, set in config.h.
Signed-off-by: Martin Storsjö <martin@martin.st>
2022-03-16 14:12:49 +02:00
Wu Jianhua
f629ea2e18
avutil/cpu: add AVX512 Icelake flag
...
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2022-03-10 16:45:48 -03:00
Mark Reid
9e445a5be2
swscale/x86/output.asm: add x86-optimized planer gbr yuv2anyX functions
...
changes since v2:
* fixed label
changes since v1:
* remove vex intruction on sse4 path
* some load/pack marcos use less intructions
* fixed some typos
yuv2gbrp_full_X_4_512_c: 12757.6
yuv2gbrp_full_X_4_512_sse2: 8946.6
yuv2gbrp_full_X_4_512_sse4: 5138.6
yuv2gbrp_full_X_4_512_avx2: 3889.6
yuv2gbrap_full_X_4_512_c: 15368.6
yuv2gbrap_full_X_4_512_sse2: 11916.1
yuv2gbrap_full_X_4_512_sse4: 6294.6
yuv2gbrap_full_X_4_512_avx2: 3477.1
yuv2gbrp9be_full_X_4_512_c: 14381.6
yuv2gbrp9be_full_X_4_512_sse2: 9139.1
yuv2gbrp9be_full_X_4_512_sse4: 5150.1
yuv2gbrp9be_full_X_4_512_avx2: 2834.6
yuv2gbrp9le_full_X_4_512_c: 12990.1
yuv2gbrp9le_full_X_4_512_sse2: 9118.1
yuv2gbrp9le_full_X_4_512_sse4: 5132.1
yuv2gbrp9le_full_X_4_512_avx2: 2833.1
yuv2gbrp10be_full_X_4_512_c: 14401.6
yuv2gbrp10be_full_X_4_512_sse2: 9133.1
yuv2gbrp10be_full_X_4_512_sse4: 5126.1
yuv2gbrp10be_full_X_4_512_avx2: 2837.6
yuv2gbrp10le_full_X_4_512_c: 12718.1
yuv2gbrp10le_full_X_4_512_sse2: 9106.1
yuv2gbrp10le_full_X_4_512_sse4: 5120.1
yuv2gbrp10le_full_X_4_512_avx2: 2826.1
yuv2gbrap10be_full_X_4_512_c: 18535.6
yuv2gbrap10be_full_X_4_512_sse2: 33617.6
yuv2gbrap10be_full_X_4_512_sse4: 6264.1
yuv2gbrap10be_full_X_4_512_avx2: 3422.1
yuv2gbrap10le_full_X_4_512_c: 16724.1
yuv2gbrap10le_full_X_4_512_sse2: 11787.1
yuv2gbrap10le_full_X_4_512_sse4: 6282.1
yuv2gbrap10le_full_X_4_512_avx2: 3441.6
yuv2gbrp12be_full_X_4_512_c: 13723.6
yuv2gbrp12be_full_X_4_512_sse2: 9128.1
yuv2gbrp12be_full_X_4_512_sse4: 7997.6
yuv2gbrp12be_full_X_4_512_avx2: 2844.1
yuv2gbrp12le_full_X_4_512_c: 12257.1
yuv2gbrp12le_full_X_4_512_sse2: 9107.6
yuv2gbrp12le_full_X_4_512_sse4: 5142.6
yuv2gbrp12le_full_X_4_512_avx2: 2837.6
yuv2gbrap12be_full_X_4_512_c: 18511.1
yuv2gbrap12be_full_X_4_512_sse2: 12156.6
yuv2gbrap12be_full_X_4_512_sse4: 6251.1
yuv2gbrap12be_full_X_4_512_avx2: 3444.6
yuv2gbrap12le_full_X_4_512_c: 16687.1
yuv2gbrap12le_full_X_4_512_sse2: 11785.1
yuv2gbrap12le_full_X_4_512_sse4: 6243.6
yuv2gbrap12le_full_X_4_512_avx2: 3446.1
yuv2gbrp14be_full_X_4_512_c: 13690.6
yuv2gbrp14be_full_X_4_512_sse2: 9120.6
yuv2gbrp14be_full_X_4_512_sse4: 5138.1
yuv2gbrp14be_full_X_4_512_avx2: 2843.1
yuv2gbrp14le_full_X_4_512_c: 14995.6
yuv2gbrp14le_full_X_4_512_sse2: 9119.1
yuv2gbrp14le_full_X_4_512_sse4: 5126.1
yuv2gbrp14le_full_X_4_512_avx2: 2843.1
yuv2gbrp16be_full_X_4_512_c: 12367.1
yuv2gbrp16be_full_X_4_512_sse2: 8233.6
yuv2gbrp16be_full_X_4_512_sse4: 4820.1
yuv2gbrp16be_full_X_4_512_avx2: 2666.6
yuv2gbrp16le_full_X_4_512_c: 10904.1
yuv2gbrp16le_full_X_4_512_sse2: 8214.1
yuv2gbrp16le_full_X_4_512_sse4: 4824.1
yuv2gbrp16le_full_X_4_512_avx2: 2629.1
yuv2gbrap16be_full_X_4_512_c: 26569.6
yuv2gbrap16be_full_X_4_512_sse2: 10884.1
yuv2gbrap16be_full_X_4_512_sse4: 5488.1
yuv2gbrap16be_full_X_4_512_avx2: 3272.1
yuv2gbrap16le_full_X_4_512_c: 14010.1
yuv2gbrap16le_full_X_4_512_sse2: 10562.1
yuv2gbrap16le_full_X_4_512_sse4: 5463.6
yuv2gbrap16le_full_X_4_512_avx2: 3255.1
yuv2gbrpf32be_full_X_4_512_c: 14524.1
yuv2gbrpf32be_full_X_4_512_sse2: 8552.6
yuv2gbrpf32be_full_X_4_512_sse4: 4636.1
yuv2gbrpf32be_full_X_4_512_avx2: 2474.6
yuv2gbrpf32le_full_X_4_512_c: 13060.6
yuv2gbrpf32le_full_X_4_512_sse2: 9682.6
yuv2gbrpf32le_full_X_4_512_sse4: 4298.1
yuv2gbrpf32le_full_X_4_512_avx2: 2453.1
yuv2gbrapf32be_full_X_4_512_c: 18629.6
yuv2gbrapf32be_full_X_4_512_sse2: 11363.1
yuv2gbrapf32be_full_X_4_512_sse4: 15201.6
yuv2gbrapf32be_full_X_4_512_avx2: 3727.1
yuv2gbrapf32le_full_X_4_512_c: 16677.6
yuv2gbrapf32le_full_X_4_512_sse2: 10221.6
yuv2gbrapf32le_full_X_4_512_sse4: 5693.6
yuv2gbrapf32le_full_X_4_512_avx2: 3656.6
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2022-01-11 16:33:17 -03:00
Shiyou Yin
9a840ffa17
avutil: [loongarch] Add support for loongarch SIMD.
...
LSX and LASX is loongarch SIMD extention.
They are enabled by default if compiler support it, and can be disabled
with '--disable-lsx' '--disable-lasx'.
Change-Id: Ie2608ea61dbd9b7fffadbf0ec2348bad6c124476
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Reviewed-by: guxiwei <guxiwei-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-12-15 18:37:40 +01:00
J. Dekker
b492cacffd
checkasm: collapse hevc pel tests
...
Also add to `make fate-checkasm' target.
Signed-off-by: J. Dekker <jdek@itanimul.li>
2021-08-24 22:12:06 +02:00
J. Dekker
c866a099b2
lavu/kperf: use ff_thread_once()
...
Signed-off-by: J. Dekker <jdek@itanimul.li>
2021-07-21 16:35:27 +02:00
J. Dekker
9a727235fd
lavu/checkasm: add (private) kperf timing for macOS
...
Signed-off-by: J. Dekker <jdek@itanimul.li>
2021-07-20 19:40:03 +02:00
Lynne
1978b143eb
checkasm: add av_tx FFT SIMD testing code
...
This sadly required making changes to the code itself,
due to the same context needing to be reused for both versions.
The lookup table had to be duplicated for both versions.
2021-04-24 17:19:17 +02:00
Josh Dekker
9c513edb79
checkasm: add hevc_pel tests
...
Co-authored-by: Niklas Haas <git@haasn.xyz>
Signed-off-by: Josh Dekker <josh@itanimul.li>
2021-01-25 09:24:11 +01:00
Jiaxun Yang
e387fcd01c
libavutil: Detect MMI and MSA flags for MIPS
...
Add MMI & MSA runtime detection for MIPS.
Basically there are two code pathes. For systems that
natively support CPUCFG instruction or kernel emulated
that instruction, we'll sense this feature from HWCAP and
report the flags according to values grab from CPUCFG. For
systems that have no CPUCFG (or not export it in HWCAP),
we'll parse /proc/cpuinfo instead.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-07-23 17:21:58 +02:00
Josh de Kock
5913cd4e6c
checkasm: add hscale test
...
This tests the hscale 8bpp to 14/18bpp functions with different filter
sizes.
Signed-off-by: Josh de Kock <josh@itanimul.li>
2020-05-15 10:29:30 +01:00
Martin Storsjö
3ce1b2bf8d
checkasm: add function to check and diff memory
...
This was ported from dav1d (c950e7101bdf5f7117bfca816984a21e550509f0).
Signed-off-by: Josh de Kock <josh@itanimul.li>
2020-05-15 10:29:30 +01:00
Martin Storsjö
cbb254cb4c
checkasm: Check HAVE_GETSTDHANDLE here as well
...
This was missed in 63418e374f
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2020-01-24 22:17:18 +02:00
Ting Fu
9691e2a426
checkasm/vf_eq: add test for vf_eq
...
Signed-off-by: Ting Fu <ting.fu@intel.com>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-09-26 08:10:31 +08:00
Lynne
4ce1e13b54
checkasm: add opusdsp tests
2019-09-11 03:28:22 +01:00
Ruiling Song
8f4963ad25
checkasm/vf_gblur: add test for horiz_slice simd
...
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-06-12 08:54:05 +08:00
James Darnley
76c370af64
checkasm: add test for v210dec
2019-05-02 19:21:37 +02:00
Carl Eugen Hoyos
608572ce84
tests/checkasm/checkasm: Do not define an unused function.
...
Fixes the following warning:
tests/checkasm/checkasm.c:615:12: warning: 'bench_init_ffmpeg' defined but not used
2019-01-31 20:16:17 +01:00
James Almer
ba89dc27b5
checkasm: add an af_afir test
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-01-03 10:12:18 -03:00
Clément Bœsch
f679711c1b
checkasm: add vf_nlmeans test for ssd_integral_image
2018-05-08 10:28:06 +02:00
Michael Niedermayer
18d6ff2b42
tests/checkasm/checkasm: Provide verbose failure information on float_near_abs_eps() failures
...
This will make understanding failures and adjusting EPS easier
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-14 15:54:06 +02:00
Martin Vignali
a9a7ed4f27
checkasm/swscale : add test for rgb shuffle_bytes func
2018-03-24 20:22:12 +01:00
Yingming Fan
80798e3857
checkasm/hevc_sao : add hevc_sao for checkasm
...
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-07 23:53:32 -03:00
Martin Vignali
78b982d3b9
checkasm : add test for losslessvideoencdsp for diff bytes and sub_left_pred
2018-01-28 20:23:16 +01:00
James Darnley
40d4b13228
checkasm: support for AVX-512 functions
2017-12-24 22:02:41 +01:00
James Almer
da03242778
Revert "checkasm/vf_interlace : add test for lowpass_line 8 and 16"
...
This reverts commit adff97be5e
.
It currently fails on Windows targets.
Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-19 19:07:24 -03:00
Martin Vignali
adff97be5e
checkasm/vf_interlace : add test for lowpass_line 8 and 16
2017-12-19 20:59:51 +01:00
Martin Vignali
cefb7e0060
checkasm/vf_hflip : add test for vf_hflip byte and short simd
2017-12-13 11:34:29 +01:00
Martin Vignali
cfce442750
checkasm/vf_threshold : add checkasm test for threshold8
2017-12-03 19:17:15 +01:00
Martin Vignali
4a6aa6d1b2
checkasm : add test for huffyuvdsp add_int16
2017-11-21 09:41:42 +01:00
Martin Vignali
6a7eb65e1b
checkasm : add utvideodsp test
2017-11-21 09:00:27 +01:00
James Almer
7323c896b2
checkasm: add an exrdsp test
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17 19:01:40 -03:00
Clément Bœsch
e0d56f097f
checkasm: use perf API on Linux ARM*
...
On ARM platforms, accessing the PMU registers requires special user
access permissions. Since there is no other way to get accurate timers,
the current implementation of timers in FFmpeg rely on these registers.
Unfortunately, enabling user access to these registers on Linux is not
trivial, and generally involve compiling a random and unreliable github
kernel module, or patching somehow your kernel.
Such module is very unlikely to reach the upstream anytime soon. Quoting
Robin Murphin from ARM:
> Say you do give userspace direct access to the PMU; now run two or more
> programs at once that believe they can use the counters for their own
> "minimal-overhead" profiling. Have fun interpreting those results...
>
> And that's not even getting into the implications of scheduling across
> different CPUs, CPUidle, etc. where the PMU state is completely beyond
> userspace's control. In general, the plan to provide userspace with
> something which might happen to just about work in a few corner cases,
> but is meaningless, misleading or downright broken in all others, is to
> never do so.
As a result, the alternative is to use the Performance Monitoring Linux
API which makes use of these registers internally (assuming the PMU of
your ARM board is supported in the kernel, which is definitely not a
given...).
While the Linux API is obviously cross platform, it does have a
significant overhead which needs to be taken into account. As a result,
that mode is only weakly enabled on ARM platforms exclusively.
Note on the non flexibility of the implementation: the timers (native
FFmpeg vs Linux API) are selected at compilation time to prevent the
need of function calls, which would result in a negative impact on the
cycle counters.
2017-09-08 18:51:05 +02:00
James Almer
823cc7e25f
checkasm: add a g722dsp test
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-13 17:00:19 -03:00
Matthieu Bouron
7864e07f4a
checkasm: add sbrdsp tests
2017-07-03 14:28:17 +02:00
Clément Bœsch
edd041e64c
checkasm: add AAC PS tests
...
This includes various fixes and improvements from James Almer.
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-28 12:22:39 +02:00
James Almer
5b10f484e2
checkasm: add float_dsp tests
...
Ported from libavutil/tests/float_dsp.c
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-14 19:20:10 -03:00
James Almer
7b3cb953f7
checkasm: add fixed_dsp tests
...
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-11 18:05:13 -03:00
Clément Bœsch
b589e83f43
Merge commit '9498237049d15812cecb79df47b196c73013908b'
...
* commit '9498237049d15812cecb79df47b196c73013908b':
checkasm: Add --test parameter to check only specific components
Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-03-31 10:06:13 +02:00
Clément Bœsch
3d4039f964
Merge commit 'ed48a9d8143d2575a4458589cebde69ec326afd8'
...
* commit 'ed48a9d8143d2575a4458589cebde69ec326afd8':
checkasm: Add a test for HEVC add_residual
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-24 12:37:09 +01:00
Clément Bœsch
7c2a7f9c11
Merge commit '22c3ab18646924ce24dc6017a9e882ff69689e40'
...
* commit '22c3ab18646924ce24dc6017a9e882ff69689e40':
checkasm: Add test for huffyuvdsp add_bytes
huffyuvdsp is renamed to llviddsp to be consistent with our codebase.
Note: af607b7e07
wasn't actually required for this test since this
commit is not actually testing huffyuvdsp.
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-22 16:31:38 +01:00
Clément Bœsch
8414755486
Merge commit 'e9ef6171396dc4106526aaa86b620c61ca3d1017'
...
* commit 'e9ef6171396dc4106526aaa86b620c61ca3d1017':
checkasm: add tests for audiodsp
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-20 19:10:56 +01:00
Clément Bœsch
c50b2164a6
Merge commit '2eb97af66af90ca3978229da151f0b8b3a5d9370'
...
* commit '2eb97af66af90ca3978229da151f0b8b3a5d9370':
checkasm: add a test for blockdsp
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-20 19:05:05 +01:00
Clément Bœsch
3c8f7a8f6b
Merge commit 'e89cef40506d990a982aefedfde7d3ca4f88c524'
...
* commit 'e89cef40506d990a982aefedfde7d3ca4f88c524':
checkasm: Read the unsigned value as it should
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-20 11:55:20 +01:00
Clément Bœsch
8b13492c9e
Merge commit '40ad05bab206c932a32171d45581080c914b06ec'
...
* commit '40ad05bab206c932a32171d45581080c914b06ec':
checkasm: Cast unsigned to signed
Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-03-15 12:32:15 +01:00
Clément Bœsch
92cb9a3869
Merge commit '9064777dbb335ab4809ae09e3fdcc0245f925cdc'
...
* commit '9064777dbb335ab4809ae09e3fdcc0245f925cdc':
checkasm: add HEVC test for testing IDCT DC
Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-02-02 11:40:58 +01:00
Hendrik Leppkes
47f75839e4
Merge commit 'f8d17d53957056c053a46f9320fa7ae6fe1479a5'
...
* commit 'f8d17d53957056c053a46f9320fa7ae6fe1479a5':
checkasm: Add tests for vp8dsp
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-14 15:29:08 +01:00
Diego Biurrun
9498237049
checkasm: Add --test parameter to check only specific components
...
Inspired by a patch from Martin Storsjö <martin@martin.st>.
2016-11-08 17:32:25 +01:00
Alexandra Hájková
ed48a9d814
checkasm: Add a test for HEVC add_residual
2016-10-22 17:33:35 +02:00