sunyuechi
0b9d009b4a
lavc/vc1dsp: R-V V inv_trans
...
C908:
vc1dsp.vc1_inv_trans_4x4_dc_c: 125.7
vc1dsp.vc1_inv_trans_4x4_dc_rvv_i32: 53.5
vc1dsp.vc1_inv_trans_4x8_dc_c: 230.7
vc1dsp.vc1_inv_trans_4x8_dc_rvv_i32: 65.5
vc1dsp.vc1_inv_trans_8x4_dc_c: 228.7
vc1dsp.vc1_inv_trans_8x4_dc_rvv_i64: 64.5
vc1dsp.vc1_inv_trans_8x8_dc_c: 476.5
vc1dsp.vc1_inv_trans_8x8_dc_rvv_i64: 80.2
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2023-12-08 17:20:48 +02:00
Andreas Rheinhardt
333b32af8e
avcodec/h264chroma: Constify src in h264_chroma_mc_func
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-08-05 03:02:13 +02:00
Andreas Rheinhardt
40e6575aa3
all: Replace if (ARCH_FOO) checks by #if ARCH_FOO
...
This is more spec-compliant because it does not rely
on dead-code elimination by the compiler. Especially
MSVC has problems with this, as can be seen in
https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html
or
https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html
This commit does not eliminate every instance where we rely
on dead code elimination: It only tackles branching to
the initialization of arch-specific dsp code, not e.g. all
uses of CONFIG_ and HAVE_ checks. But maybe it is already
enough to compile FFmpeg with MSVC with whole-programm-optimizations
enabled (if one does not disable too many components).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-06-15 04:56:37 +02:00
Ben Avison
2e26847780
avcodec/vc1: Introduce fast path for unescaping bitstream buffer
...
Includes a checkasm test.
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ö
db54426975
vc1dsp: Change remaining stride parameters to ptrdiff_t
...
The existing x86 assembly for loop filters uses the stride as a
full register without clearing/sign extending the upper half
of the registers on x86_64.
This avoids crashes if the caller would have passed nonzero bits
in the previously undefined upper 32 bits of the parameters.
Signed-off-by: Martin Storsjö <martin@martin.st>
2022-03-30 14:53:55 +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
Hao Chen
60ead5cd68
avcodec: [loongarch] Optimize vc1dsp with LASX.
...
./ffmpeg -i 11_wmv3_720p_24fps_7Mbps.wmv -f rawvideo -y /dev/null -an
before:131fps
after :229fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-12-23 12:28:54 +01:00
Michael Niedermayer
507ca66ee4
avcodec/vc1dsp: Avoid undefined shifts in vc1_v_s_overlap_c / vc1_h_s_overlap_c
...
Fixes: left shift of negative value -13
Fixes: 15260/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1_fuzzer-5702076048343040
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-06-26 21:26:41 +02:00
Jerome Borsboom
975a1a81b2
avcodec/vc1: fix overlap filter for frame interlaced pictures
...
The overlap filter is not correct for vertical edges in frame interlaced
I and P pictures. When filtering macroblocks with different FIELDTX values,
we have to match the lines at both sides of the vertical border. In addition,
we have to use the correct rounding values, depending on the line we are
filtering.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-29 01:18:44 +02:00
James Almer
a8474df944
Merge commit ' e4a94d8b36'
...
* commit 'e4a94d8b36 ':
h264chroma: Change type of stride parameters to ptrdiff_t
Merged-by: James Almer <jamrial@gmail.com>
2017-03-21 15:20:45 -03:00
James Almer
5a49097b42
Merge commit ' 2ec9fa5ec6'
...
* commit '2ec9fa5ec6 ':
idct: Change type of array stride parameters to ptrdiff_t
Merged-by: James Almer <jamrial@gmail.com>
2017-03-21 14:29:52 -03:00
Zhou Xiaoyong
5b74ebe937
avcodec/mips: version 1 of vc1dsp optimizations for loongson mmi
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-17 18:41:18 +01:00
Diego Biurrun
e4a94d8b36
h264chroma: Change type of stride parameters to ptrdiff_t
...
This avoids SIMD-optimized functions having to sign-extend their
stride argument manually to be able to do pointer arithmetic.
2016-09-29 14:48:04 +02:00
Diego Biurrun
2ec9fa5ec6
idct: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 14:48:03 +02:00
Derek Buitenhuis
1a12eb4a73
Merge commit ' 29c2d06d67'
...
* commit '29c2d06d67 ':
cosmetics: Drop empty comment lines
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:31:44 +00:00
Diego Biurrun
29c2d06d67
cosmetics: Drop empty comment lines
2016-02-18 15:35:30 +01:00
Michael Niedermayer
e3f7142306
avcodec/vc1dsp: add () to protect the arguments of the op* macros
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-17 00:02:40 +01:00
Michael Niedermayer
bf7ed956ff
Merge commit ' adf8227cf4'
...
* commit 'adf8227cf4 ':
vc-1: Add platform-specific start code search routine to VC1DSPContext.
Conflicts:
configure
libavcodec/arm/vc1dsp_init_arm.c
libavcodec/vc1dsp.c
libavcodec/vc1dsp.h
See: 9d8ecdd8ca
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:00:41 +02:00
Ben Avison
adf8227cf4
vc-1: Add platform-specific start code search routine to VC1DSPContext.
...
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Diego Biurrun
58e65e44f4
vc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_c
...
This avoids invoking the wrapped functions with too many arguments.
2014-07-25 02:52:54 -07:00
Michael Niedermayer
98a6806fdd
Merge commit ' 368f50359e'
...
* commit '368f50359e ':
dsputil: Split off quarterpel bits into their own context
Conflicts:
configure
libavcodec/dsputil.c
libavcodec/h263dec.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/vc1dec.c
libavcodec/vc1dsp.c
libavcodec/x86/dsputil_init.c
libavcodec/x86/qpeldsp.asm
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 02:43:34 +02:00
Diego Biurrun
368f50359e
dsputil: Split off quarterpel bits into their own context
2014-05-29 06:48:31 -07:00
Ben Avison
9d8ecdd8ca
vc-1: Add platform-specific start code search routine to VC1DSPContext.
...
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 02:36:11 +02:00
Christophe Gisquet
319235c67c
vc1dsp: introduce cases for 8x8 and 16x16
...
This allows further unrolling the DSP implementation where possible.
x86 and ARM DSP modified by simply moving the multiple calls from vc1dec
to the DSP code. Decoding improvements should only occurs because of the
compiler actually able to unroll more.
Decoding time: ~8.80s -> 8.64s (ie around 2%)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 18:25:36 +02:00
Michael Niedermayer
5440151fa4
Merge commit ' 3dc6272bed'
...
* commit '3dc6272bed ':
Remove a number of unnecessary dsputil.h #includes
Conflicts:
libavcodec/h264pred.c
libavcodec/vc1dsp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 18:54:15 +02:00
Diego Biurrun
3dc6272bed
Remove a number of unnecessary dsputil.h #includes
2014-04-04 19:08:05 +02:00
Michael Niedermayer
5dce8e56c6
Merge commit ' ed9625eb62'
...
* commit 'ed9625eb62 ':
dsputil: Move intreadwrite.h #include from header file to .c files
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:30:43 +01:00
Michael Niedermayer
6f001d87ff
Merge commit ' 71617884a2'
...
* commit '71617884a2 ':
aarch64: h264 chroma motion compensation NEON optimizations
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:00:06 +01:00
Janne Grunau
71617884a2
aarch64: h264 chroma motion compensation NEON optimizations
...
Since RV40 and VC-1 use almost the same algorithm so optimizations for
those two decoders are easy to do and included.
2014-01-15 12:07:18 +01:00
Michael Niedermayer
58eb9b9299
Merge commit ' 6d98959c8a'
...
* commit '6d98959c8a ':
vc1: Add avg_no_rnd_vc1_chroma_mc4_c()
Conflicts:
libavcodec/vc1dsp.c
See: dd6e291e40
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:19:15 +01:00
Michael Niedermayer
1df53ff22d
Merge commit ' c798a6fedc'
...
* commit 'c798a6fedc ':
vc1: Factorize out chroma MC
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:04:58 +01:00
Michael Niedermayer
6d98959c8a
vc1: Add avg_no_rnd_vc1_chroma_mc4_c()
...
Needed for proper interlaced support.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-13 10:22:58 +01:00
Luca Barbato
c798a6fedc
vc1: Factorize out chroma MC
2014-01-13 10:21:53 +01:00
Michael Niedermayer
4daf8bc31b
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
vc1dsp: K&R formatting cosmetics
Conflicts:
libavcodec/vc1dsp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 20:04:35 +01:00
Luca Barbato
a1f5164814
vc1dsp: K&R formatting cosmetics
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-01-12 18:33:25 +01:00
Michael Niedermayer
69278d94c4
Merge commit ' 832e190632'
...
* commit '832e190632 ':
vc1: arm: Add NEON assembly
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:12:16 +01:00
Mason Carter
832e190632
vc1: arm: Add NEON assembly
...
For:
ff_vc1_inv_trans_{8,4}x{8,4}_{dc_,}neon
ff_put_pixels8x8_neon
ff_put_vc1_mspel_mc{0,1,2,3}{0,1,2,3}_neon (except for 00)
Based on ARM assembly code in libavcodec/arm by Rob Clark and Mans
Rullgard.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-20 14:53:39 +02:00
Michael Niedermayer
f896f92337
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
cosmetics: Place arch initialization calls in alphabetical order
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 16:15:54 +02:00
Diego Biurrun
67e6a9f558
cosmetics: Place arch initialization calls in alphabetical order
2013-08-29 11:24:14 +02:00
Michael Niedermayer
cae8f469fe
Merge commit ' 38282149b6'
...
* commit '38282149b6 ':
ppc: More consistent arch initialization
Conflicts:
libavcodec/fft.h
libavcodec/mpegaudiodsp.c
libavcodec/mpegaudiodsp.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-01 18:08:13 +02:00
Diego Biurrun
38282149b6
ppc: More consistent arch initialization
2013-04-30 12:19:45 +02:00
Michael Niedermayer
dd6e291e40
vc1dsp: add avg_no_rnd_vc1_chroma_mc4_c()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-25 22:39:19 +02:00
Michael Niedermayer
019b378d90
vc1: fix int/ptrdiff_t mismatches
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 14:35:48 +01:00
Michael Niedermayer
db4e4f766c
Merge commit ' a8b6015823'
...
* commit 'a8b6015823 ':
dsputil: convert remaining functions to use ptrdiff_t strides
Conflicts:
libavcodec/dsputil.h
libavcodec/dsputil_template.c
libavcodec/h264qpel_template.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 14:18:53 +01:00
Luca Barbato
a8b6015823
dsputil: convert remaining functions to use ptrdiff_t strides
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-12 18:26:42 +01:00
Michael Niedermayer
81a11452f8
Merge commit ' bf6b3ec924'
...
* commit 'bf6b3ec924 ':
dsputil: Move rnd_avg inline functions to a separate header
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:22:05 +01:00
Michael Niedermayer
c4e394e460
Merge commit ' 79dad2a932'
...
* commit '79dad2a932 ':
dsputil: Separate h264chroma
Conflicts:
libavcodec/dsputil_template.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/vc1dec.c
libavcodec/vc1dsp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:09:35 +01:00
Diego Biurrun
79dad2a932
dsputil: Separate h264chroma
2013-02-06 11:30:53 +01:00
Michael Niedermayer
ac8987591f
Merge commit ' 88bd7fdc82'
...
* commit '88bd7fdc82 ':
Drop DCTELEM typedef
Conflicts:
libavcodec/alpha/dsputil_alpha.h
libavcodec/alpha/motion_est_alpha.c
libavcodec/arm/dsputil_init_armv6.c
libavcodec/bfin/dsputil_bfin.h
libavcodec/bfin/pixels_bfin.S
libavcodec/cavs.c
libavcodec/cavsdec.c
libavcodec/dct-test.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.c
libavcodec/dsputil.h
libavcodec/dsputil_template.c
libavcodec/eamad.c
libavcodec/h264_cavlc.c
libavcodec/h264idct_template.c
libavcodec/mpeg12.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c
libavcodec/ppc/dsputil_altivec.c
libavcodec/proresdsp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 17:44:56 +01:00
Diego Biurrun
88bd7fdc82
Drop DCTELEM typedef
...
It does not help as an abstraction and adds dsputil dependencies.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2013-01-22 18:32:56 -08:00