James Almer
c8467abbad
x86/rv34dsp: add ff_rv34_idct_dc_add_sse2
...
Also disable ff_rv34_idct_dc_add_mmx on x86_64 as the presence of sse2
is guaranteed in such builds.
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
James Almer
ab5c4d006d
x86/vp8dsp: add ff_vp8_idct_dc_add_sse2
...
Also disable ff_vp8_idct_dc_add_mmx on x86_64 as the presence of sse2
is guaranteed in such builds.
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
Anton Khirnov
fd9212f2ed
Mark some arrays that never change as const.
8 years ago
Michael Niedermayer
536ac72f46
Revert "Merge commit '0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553'"
...
The assumption this is based on is wrong, the code is not always run with bitexact flags
This reverts commit a956164e1e
, reversing
changes made to f6005907fd
.
Approved-by: James Almer <jamrial@gmail.com>
8 years ago
Clément Bœsch
7c300a8ed4
lavc/hevc: remove a few random spaces to reduce diff with libav
8 years ago
Anton Khirnov
b4a911c189
mpegvideoenc: make a table const
8 years ago
James Almer
6d4c9f2ade
lossless_videodsp: rename add_hfyu_left_pred_int16 to add_left_pred_int16
...
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
James Almer
47f212329e
huffyuvdsp: move functions only used by huffyuv from lossless_videodsp
...
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
James Almer
cf9ef83960
huffyuvencdsp: move shared functions to a new lossless_videoencdsp context
...
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
James Almer
30c1f27299
huffyuvencdsp: move functions only used by huffyuv from lossless_videodsp
...
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
James Almer
5ac1dd8e23
lossless_videodsp: move shared functions from huffyuvdsp
...
Several codecs other than huffyuv use them.
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
Michael Niedermayer
aa95292043
avcodec/x86/vc1dsp_mc: Fix build with NASM 2.09.10
...
make fate passes
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
8 years ago
John Comeau
d06518752b
avcodec/x86/imdct36: fix building with nasm 2.11.05
...
fixes `operation size not specified` errors as described here:
http://stackoverflow.com/questions/36854583/compiling-ffmpeg-for-kali-linux-2
I rebuilt again with yasm and made sure it didn't break that.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
8 years ago
Paul B Mahol
6d09d6edbc
avcodec/magicyuv: add 10 bit support
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
8 years ago
James Darnley
acdd2d805d
avcodec/h264: resolve assert being triggered when stack is not aligned
...
32-bit msvc.
8 years ago
James Darnley
728651df06
avcodec/h264: mmx2, sse2, avx 10-bit 4:2:2 h chroma deblock/loop filter
...
Yorkfield:
- mmx2: 2.53x (504 vs. 199 cycles)
- sse2: 3.83x (504 vs. 131 cycles)
Nehalem:
- mmx2: 2.42x (365 vs. 151 cycles)
- sse2: 3.56x (365 vs. 103 cycles)
Skylake:
- mmx2: 1.81x (308 vs. 170 cycles)
- sse2: 2.84x (308 vs. 108 cycles)
- avx: 2.93x (308 vs. 105 cycles)
8 years ago
James Darnley
add21d0bb3
avcodec/h264: mmx2, sse2, avx 10-bit h chroma deblock/loop filter
...
Yorkfield:
- mmx2: 2.45x (279 vs. 114 cycles)
- sse2: 3.36x (279 vs. 83 cycles)
Nehalem:
- mmx2: 2.10x (192 vs. 92 cycles)
- sse2: 2.84x (192 vs. 68 cycles)
Skylake:
- mmx2: 1.75x (170 vs. 97 cycles)
- sse2: 2.47x (170 vs. 69 cycles)
- avx: 2.47x (170 vs. 69 cycles)
8 years ago
James Darnley
58ca2ef62e
whitespace changes after last commit
8 years ago
James Darnley
f33714a694
avcodec/h264: clean up and expand x86 function definitions
8 years ago
Diego Biurrun
0a35f128f3
cabac: x86: Give optimizations header a more meaningful name
8 years ago
James Darnley
13d71c28cc
avcodec/h264: sse2 and avx 4:2:2 idct add8 10-bit functions
...
Yorkfield:
- sse2:
- complex: 4.13x faster (1514 vs. 367 cycles)
- simple: 4.38x faster (1836 vs. 419 cycles)
Skylake:
- sse2:
- complex: 3.61x faster ( 936 vs. 260 cycles)
- simple: 3.97x faster (1126 vs. 284 cycles)
- avx (versus sse2):
- complex: 1.07x faster (260 vs. 244 cycles)
- simple: 1.03x faster (284 vs. 274 cycles)
8 years ago
James Darnley
1dae7ffa0b
avcodec/h264: mmx 4:2:2 idct add8 function
...
2.87 times faster (1830 vs. 638 cycles)
8 years ago
James Darnley
815ea8c6cc
avcodec/h264: mmxext 4:2:2 chroma intra deblock/loop filter
...
2.1 times faster (401 vs. 194 cycles)
8 years ago
James Almer
2de1c79b61
x86/vp9itxfm: add missing AVX2 guards
...
Fixes compilation with Yasm 1.1.0 and older.
Signed-off-by: James Almer <jamrial@gmail.com>
8 years ago
Ronald S. Bultje
83a139e3d8
vp9: add avx2 iadst16 implementations.
...
Also a small cosmetic change to the avx2 idct16 version to make it
explicit that one of the arguments to the write-out macros is unused
for >=avx2 (it uses pmovzxbw instead of punpcklbw).
8 years ago
Diego Biurrun
0361e4dcb4
h264_qpel: x86: Move function with only one instance out of template macro
...
libavcodec/x86/h264_qpel.c:392:785: warning: unused function 'ff_avg_h264_qpel8or16_hv1_lowpass_mmxext' [-Wunused-function]
8 years ago
Diego Biurrun
3cba09e522
x86: Drop stray semicolons after function definitions
...
libavcodec/x86/rv40dsp_init.c:97:2: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
libavcodec/x86/vp9dsp_init.c:94:40: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
8 years ago
Martin Storsjö
2e55e26b40
vp9: Flip the order of arguments in MC functions
...
This makes it match the pattern already used for VP8 MC functions.
This also makes the signature match ffmpeg's version of these
functions, easing porting of code in both directions.
Signed-off-by: Martin Storsjö <martin@martin.st>
8 years ago
Pierre Edouard Lepere
6d5636ad9a
hevc: x86: Add add_residual() SIMD optimizations
...
Initially written by Pierre Edouard Lepere <Pierre-Edouard.Lepere@insa-rennes.fr>,
extended by James Almer <jamrial@gmail.com>.
Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
8 years ago
Andreas Cadhalpun
c8a6eb58d7
doc: fix spelling errors
...
Thanks to Mathieu Malaterre <malat@debian.org> for reporting the
Que/Queue typo. (https://bugs.debian.org/839542 )
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
8 years ago
Diego Biurrun
788544ff0e
audiodsp: x86: Remove pointless header file
...
Its single forward declaration can be moved to the only place
it is used, like is done for all other dsp init files.
8 years ago
Diego Biurrun
b89804da9b
x86: videodsp: Add parentheses to expression to work around warning
...
libavcodec/x86/videodsp.asm:128: warning: signed dword value exceeds bounds
8 years ago
Rostislav Pehlivanov
d2ae5f77c6
aacenc: add SIMD optimizations for abs_pow34 and quantization
...
Performance improvements:
quant_bands:
with: 681 decicycles in quant_bands, 8388453 runs, 155 skips
without: 1190 decicycles in quant_bands, 8388386 runs, 222 skips
Around 42% for the function
Twoloop coder:
abs_pow34:
with/without: 7.82s/8.17s
Around 4% for the entire encoder
Both:
with/without: 7.15s/8.17s
Around 12% for the entire encoder
Fast coder:
abs_pow34:
with/without: 3.40s/3.77s
Around 10% for the entire encoder
Both:
with/without: 3.02s/3.77s
Around 20% faster for the entire encoder
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: James Almer <jamrial@gmail.com>
8 years ago
Diego Biurrun
6be7944ee2
x86: Add missing colons after assembly labels
...
This fixes many warnings of the sort
warning: label alone on a line without a colon might be in error
8 years ago
Alexandra Hájková
112cee0241
hevc: Add SSE2 and AVX IDCT
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Anton Khirnov
e4128c08d7
Revert "hevc: x86: Refactor IDCT macro declarations"
...
This reverts commit d9dccc0389
. There were
outstanding objections to this commit.
9 years ago
Diego Biurrun
5801f9ed24
h264_intrapred: x86: Update comments left behind in 95c89da36e
9 years ago
Diego Biurrun
d9dccc0389
hevc: x86: Refactor IDCT macro declarations
9 years ago
Ronald S. Bultje
715f139c9b
vp9lpf/x86: make filter_16_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
8915320db9
vp9lpf/x86: make filter_48/84/88_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
725a216481
vp9lpf/x86: make filter_44_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
5bfa96c4b3
vp9lpf/x86: make filter_16_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
b905e8d2fe
vp9lpf/x86: make filter_48/84_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
37637e6590
vp9lpf/x86: make filter_88_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
be10834bd9
vp9lpf/x86: make filter_44_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
7c62891efe
vp9lpf/x86: save one register in SIGN_ADD/SUB.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
c6375a83d1
vp9lpf/x86: store unpacked intermediates for filter6/14 on stack.
...
filter16 goes from 508 to 482 (h) or 346 to 314 (v) cycles; filter88
goes from 240 to 238 (h) or 174 to 165 (v) cycles, measured on TOS.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
4ce8ba72f9
vp9lpf/x86: move variable assigned inside macro branch.
...
The value is not used outside the branch.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
e4961035b2
vp9lpf/x86: simplify ABSSUM_CMP by inverting the comparison meaning.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Ronald S. Bultje
683da2788e
vp9lpf/x86: remove unused register from ABSSUB_CMP macro.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago