Thomas Mundt
40bfaa190c
avfilter/interlace: add support for 10 and 12 bit
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-23 16:19:58 -03:00
Thomas Mundt
a7f6bfdc18
avfilter/interlace: prevent over-sharpening with the complex low-pass filter
...
The complex vertical low-pass filter slightly over-sharpens the picture. This becomes visible when several transcodings are cascaded and the error potentises, e.g. some generations of HD->SD SD->HD.
To prevent this behaviour the destination pixel must not exceed the source pixel when the average of the pixels above and below is less than the source pixel. And the other way around.
Tested and approved in a visual transcoding cascade test by video professionals.
SSIM/PSNR test with the first generation of an HD->SD file as a reference against the 6th generation(3 x SD->HD HD->SD):
Results without the patch:
SSIM Y:0.956508 (13.615881) U:0.991601 (20.757750) V:0.993004 (21.551382) All:0.974405 (15.918463)
PSNR y:31.838009 u:48.424280 v:48.962711 average:34.759466 min:31.699297 max:40.857847
Results with the patch:
SSIM Y:0.970051 (15.236232) U:0.991883 (20.905857) V:0.993174 (21.658049) All:0.981290 (17.279202)
PSNR y:34.412108 u:48.504454 v:48.969496 average:37.264644 min:34.310637 max:42.373392
Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-15 22:40:21 +02:00
Paul B Mahol
f8d0689d3f
avfilter/vf_blend: rename addition128 and difference128 to grainmerge and grainextract
2017-08-24 14:45:52 +02:00
James Almer
5688fd77b5
x86/vf_limiter: make limiter functions work on x86_32
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-13 18:17:17 -03:00
Paul B Mahol
01e545d046
avfilter: add limiter filter
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-07-08 11:49:54 +02:00
James Almer
d2ef9e6e7f
x86/vf_blend: use ABS2 macro
2017-06-27 20:45:55 -03:00
James Almer
0daa1cf073
x86/vf_blend: optimize difference and negation functions
...
Process more pixels per loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-27 13:17:23 -03:00
James Almer
fa50d9360b
x86/vf_blend: add sse and ssse3 extremity functions
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-27 13:17:23 -03:00
Ronald S. Bultje
97f7f83169
vf_spp: only assign function pointers if permutation matches expectations.
2017-06-24 07:53:15 -04:00
Diego Biurrun
fd502f4f5f
build: Generalize yasm/nasm-related variable names
...
None of them are specific to the YASM assembler.
(Cherry-picked from libav commit 39e208f4d4
)
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-21 17:00:29 -03:00
Paul B Mahol
49bbfb9d13
avfilter: add arbitrary audio FIR filter
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-05-09 20:47:52 +02:00
Thomas Mundt
2da5bf4c2f
avfilter/interlace: add complex vertical low-pass filter
...
This complex (-1 2 6 2 -1) filter slightly less reduces interlace 'twitter' but better retain detail and subjective sharpness impression compared to the linear (1 2 1) filter.
Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-02 14:09:50 -03:00
Thomas Mundt
207e6debf8
avfilter/interlace: change lowpass_line function prototype
...
Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-22 20:12:15 +02:00
Paul B Mahol
c6c888e996
avfilter/vf_w3fdif: add >8 but <16 bit support
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-12-25 09:50:36 +01:00
James Almer
a8e3833a61
x86/avf_showcqt: use the FMULADD_PS x86util macro
...
Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-20 02:12:33 -03:00
Matthieu Bouron
9eb3da2f99
asm: FF_-prefix internal macros used in inline assembly
...
See merge commit '39d6d3618d48625decaff7d9bdbb45b44ef2a805'.
2016-06-27 17:21:18 +02:00
Hendrik Leppkes
c142dc203e
Merge commit 'dc40a70c5755bccfb1a1349639943e1f408bea50'
...
* commit 'dc40a70c5755bccfb1a1349639943e1f408bea50':
Drop unnecessary libavutil/x86/asm.h #includes
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:53:00 +02:00
James Almer
172af20852
x86/showcqt: use three operand format for some instructions
...
Fixes failures with yasm 1.1.0 and older
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 19:37:08 -03:00
James Almer
7d7fdd6532
x86/showcqt: add missing preprocessor checks
...
Old yasm/nasm versions don't support some of these
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 19:34:43 -03:00
James Almer
99b899483e
avutil/x86util: move haddps sse emulation from showcqt
...
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 14:18:00 -03:00
Muhammad Faiz
1e69ac9246
avfilter/avf_showcqt: cqt_calc optimization on x86
...
on x86_64:
time PSNR
plain 3.303 inf
SSE 1.649 107.087535
SSE3 1.632 107.087535
AVX 1.409 106.986771
FMA3 1.265 107.108437
on x86_32 (PSNR compared to x86_64 plain):
time PSNR
plain 7.225 103.951979
SSE 1.827 105.859282
SSE3 1.819 105.859282
AVX 1.533 105.997661
FMA3 1.384 105.885377
FMA4 test is not available
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-08 16:09:43 +07:00
Diego Biurrun
dc40a70c57
Drop unnecessary libavutil/x86/asm.h #includes
2016-05-28 19:18:26 +02:00
Paul B Mahol
5b8faaad6c
avfilter/vf_blend: fix incorrect Y variable when threading is used
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-23 21:49:15 +02:00
Ronald S. Bultje
f4075767b2
vf_colorspace: use enums for bpp/subsampling array indices.
...
Also add some documentation for each function to colorspacedsp.h.
2016-05-10 08:37:56 -04:00
Ronald S. Bultje
9b26a8077f
vf_colorspace: add const to yuv_stride[] argument in DSP functions.
2016-05-10 08:37:55 -04:00
Ronald S. Bultje
5ce703a6bf
vf_colorspace: x86-64 SIMD (SSE2) optimizations.
2016-04-12 16:42:48 -04:00
Thomas Mundt
d0a9114f99
avfilter/vf_bwdif: Add yadif base information to copyright header
...
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-16 00:05:45 -03:00
Thomas Mundt
5024a82e95
avfilter/vf_bwdif: add x86 SIMD
...
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
2016-03-13 10:06:21 +01:00
Timothy Gu
222e6da605
x86/vf_blend: Add SSE2 optimization for divide
...
4.5x faster than C float version with autovectorization
10 x faster than C int version
25 x faster than C float version without autovectorization
2016-02-28 08:19:09 -08:00
Timothy Gu
4574323973
vf_blend: Reduce number of arguments for kernel function
2016-02-14 08:58:41 -08:00
Timothy Gu
74f8d9aaef
x86/vf_blend: Add SSE2 optimization for screen
...
10x faster than C.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 11:26:04 -08:00
Timothy Gu
c8b1612af0
x86/vf_blend: Move multiplying to a macro
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 11:25:11 -08:00
Timothy Gu
253209ac44
vf_blend: Add SSE2 optimization for multiply
...
5 times faster than C, 3 times overall.
2016-02-08 13:35:24 -08:00
Hendrik Leppkes
53ada3af62
x86/vf_w3fdif: 32-bit compatibility for w3fdif_simple_high
2016-01-08 11:56:43 +01:00
James Almer
35b0c7efda
x86/vf_stereo3d: remove a few unnecessary movas
...
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-03 02:09:02 -03:00
James Almer
1817643d4f
x86/vf_stereo3d: make ff_anaglyph_sse4 work on x86_32
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:24 -03:00
James Almer
6e243d17e9
x86/vf_stereo3d: optimize register usage
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:12 -03:00
James Almer
8dba3fb8fd
x86/vf_blend: add sse2 versions of blend_difference and blend_negation
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:27 -03:00
James Almer
02f428051a
x86/vf_blend: make all functions work on x86_32
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:24 -03:00
James Almer
0988c68cf9
x86/vf_blend: simplify using macros
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:21 -03:00
James Almer
ce4c85de6a
x86/vf_maskedmerge: make ff_maskedmerge8_sse2 work on x86_32
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:18 -03:00
Michael Niedermayer
e42e0b11f1
avfilter/x86/vf_maskedmerge: Clear upper part of width
...
Fixes crash
Fixes: Ticket5055
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-23 22:38:15 +01:00
Paul B Mahol
45938f0301
avfilter/x86/vf_maskedmerge: move %define out of .nextrow
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-10 09:52:04 +01:00
James Almer
d897d4c12d
x86/vf_w3fdif: use aligned loads in w3fdif_complex_high
...
Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-27 01:49:22 -03:00
James Almer
224a529b44
x86/vf_w3fdif: use aligned loads in w3fdif_simple_high
...
Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 20:07:12 -03:00
James Almer
e8903fbf8e
x86/vf_w3fdif: simplify w3fdif_simple_high
...
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 20:04:54 -03:00
James Almer
d2bf2d094e
x86/vf_w3fdif: move pxor outside the loop in w3fdif_complex_low
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 14:23:21 -03:00
Paul B Mahol
c3d312bb7f
avfilter/x86/vf_w3fdif: add colons after labels
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-10 17:55:06 +02:00
Paul B Mahol
5740dc27e1
avfilter/vf_w3fdif: add x86 SIMD
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-10 17:33:43 +02:00
Andreas Cadhalpun
8d6625642d
doc: fix spelling errors
...
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-09 22:09:08 +02:00