Pauli Oikkonen
|
26e1b2c783
|
Use (u)int32_t instead of (unsigned) int in reg_sad_sse41
|
2019-01-10 14:37:04 +02:00 |
|
Pauli Oikkonen
|
3a1f2eb752
|
Prefer SSE4.1 implementation of SAD over AVX2
It seems that the 128-bit wide version consistently outperforms the
256-bit one
|
2019-01-10 13:48:55 +02:00 |
|
Pauli Oikkonen
|
9b24d81c6a
|
Use SSE instead of AVX for small widths
Highly dubious if this will help performance at all
|
2019-01-07 20:12:13 +02:00 |
|
Pauli Oikkonen
|
b2176bf72a
|
Optimize SSE4.1 version of SAD
Make it use the same vblend trick as AVX2. Interestingly, on my test
setup this seems to be faster than the same code using 256-bit AVX
vectors.
|
2019-01-07 19:40:57 +02:00 |
|
Pauli Oikkonen
|
887d7700a8
|
Modify AVX2 SAD to mask data by byte granularity in AVX registers
Avoids using any SAD calculations narrower than 256 bits, and
simplifies the code. Also improves execution speed
|
2019-01-07 18:53:15 +02:00 |
|
Pauli Oikkonen
|
7585f79a71
|
AVX2-ize SAD calculation
Performance is no better than SSE though
|
2019-01-07 16:26:24 +02:00 |
|
Pauli Oikkonen
|
ab3dc58df6
|
Copy SAD SSE4.1 impl to AVX2
|
2019-01-03 18:31:57 +02:00 |
|
Ari Lemmetti
|
b234897e8a
|
Fix smp and amp blocks in fme and revert previous change.
Filter 8x8 (sub)blocks even with 8x4, 4x8, 16x4, 4x16 etc.
Calculate SATD on the 8x4, ... part
|
2018-12-19 21:30:53 +02:00 |
|
Sergei Trofimovich
|
68a70e45a1
|
x86 asm: mark stack as non-executable
Gentoo's `scanelf` QA tool detects writable/executable stack
of assembly-writtent files as:
```
$ scanelf -qRa .
0644 LE !WX --- --- ./src/strategies/x86_asm/.libs/picture-x86-asm-sad.o
0644 LE !WX --- --- ./src/strategies/x86_asm/.libs/picture-x86-asm-satd.o
0644 LE !WX --- --- ./src/strategies/x86_asm/picture-x86-asm-sad.o
0644 LE !WX --- --- ./src/strategies/x86_asm/picture-x86-asm-satd.o
```
Normally C compiler emits non-executable stack marking (or GNU assembler
via `-Wa,--noexecstack`).
The change adds non-executable stack marking for yasm-based assmbly files.
https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart has more details.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
2018-12-16 11:31:56 +00:00 |
|
Reima Hyvönen
|
1fcc5c6a8d
|
Merge branch 'bipred_recon'
|
2018-12-11 09:59:35 +02:00 |
|
Reima Hyvönen
|
e4a10880f3
|
Added case 12 to bipred_recon no mov
|
2018-12-11 09:52:17 +02:00 |
|
Marko Viitanen
|
a4f3968e52
|
Fix Visual Studio errors by initializing some variables used in AVX2 signhiding
|
2018-12-11 09:33:26 +02:00 |
|
Pauli Oikkonen
|
c465578048
|
Add a descriptive comment to coefficient reordering
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
f78bf2ebcb
|
Optimize q_coefs usage for indexed fetch
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
d9591f1b49
|
Eliminate midway buffering of reordered coefs
TODO: For some mysterious reason seems slightly slower than the
buffered one
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
7fe454c51f
|
Optimize get_cheapest_alternative()
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
6bbd3e5a44
|
Optimize rearrange_512 function
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
cb8209d1b3
|
Vectorize transform coefficient reordering loop
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
7cf4c7ae5f
|
Rename "reduce" functions to hsum
That's what the functions fundamendally do anyway
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
316cd8a846
|
Fix ALIGNED keyword and grow alignment to 64B
|
2018-12-03 15:36:32 +02:00 |
|
Pauli Oikkonen
|
1befc69a4c
|
Implement sign bit hiding in AVX2
|
2018-12-03 15:36:32 +02:00 |
|
Reima Hyvönen
|
f8696b54a4
|
Updated bipred_recon_avx2 in avx2/picture-avx2.c. Now it detects blocks that can be not equal to 8 (ie. width = 12)
|
2018-11-20 17:09:19 +02:00 |
|
Reima Hyvönen
|
710ba288db
|
Chroma has some problems
|
2018-11-15 16:42:48 +02:00 |
|
Ari Lemmetti
|
a832206bb6
|
Replace 32-bit incompatible instrinsics
|
2018-11-12 18:54:33 +02:00 |
|
Ari Lemmetti
|
5c774c4105
|
Rewrite most of FME and interpolation filters
Changes had to break a lot of stuff and were just squashed into this horrible code dump
|
2018-11-08 20:21:16 +02:00 |
|
Reima Hyvönen
|
7406c33a42
|
Some more cleaning
|
2018-10-26 12:25:18 +03:00 |
|
Reima Hyvönen
|
4c71546b2e
|
Cleaned some coding
|
2018-10-26 12:19:44 +03:00 |
|
Reima Hyvönen
|
4fe3909e48
|
Switched luma to use 32bits size ints intstead of 16bit size
|
2018-10-24 18:24:46 +03:00 |
|
Reima Hyvönen
|
381e786e10
|
Trying to find the bug in luma
|
2018-10-11 18:08:41 +03:00 |
|
Reima Hyvönen
|
2f5f81bac3
|
removed the non-optimated bipred function
|
2018-10-09 11:19:23 +03:00 |
|
Reima Hyvönen
|
212a8e68fa
|
Modified to avoid memory overflow, still some bug inside luma
|
2018-10-02 20:23:32 +03:00 |
|
Reima Hyvönen
|
896034b7cf
|
Some renamed functions back
|
2018-08-28 15:31:10 +03:00 |
|
Reima Hyvönen
|
e8b5e6db4c
|
Did some merging
|
2018-08-28 15:26:27 +03:00 |
|
Reima Hyvönen
|
7de5c74434
|
Updated bipred_recon to work faster
|
2018-08-28 15:12:31 +03:00 |
|
Reima Hyvönen
|
47b357cca2
|
Comment one test
|
2018-08-27 18:52:14 +03:00 |
|
Reima Hyvönen
|
2ca99a44e8
|
Updated shuffle operation to be in right order
|
2018-08-27 18:16:38 +03:00 |
|
Reima Hyvönen
|
508b218a12
|
some modifications made to prevent reading too much
|
2018-08-14 10:50:39 +03:00 |
|
Reima Hyvönen
|
1d935ee888
|
some useless stuff removed
|
2018-08-13 16:47:11 +03:00 |
|
Reima Hyvönen
|
ce3ac4c05e
|
some modifications to no_mov
|
2018-08-13 16:41:02 +03:00 |
|
Reima Hyvönen
|
15a613ae94
|
test if no_mov breaks testing
|
2018-08-13 16:02:56 +03:00 |
|
Reima Hyvönen
|
97a2049e58
|
removed pointer declaration out from switch
|
2018-08-10 16:42:26 +03:00 |
|
Reima Hyvönen
|
aa94bcedbc
|
Stream is now pointer
|
2018-08-10 16:38:49 +03:00 |
|
Reima Hyvönen
|
fa5b227ece
|
256 to 32 doesn't work, made them by hand
|
2018-08-10 16:01:20 +03:00 |
|
Reima Hyvönen
|
408dedbcc8
|
removed _mm256_extract_epi8 and replaced with _mm_stream
|
2018-08-10 15:53:26 +03:00 |
|
Reima Hyvönen
|
31c35091c6
|
_mm256_cvtsi256_si32 removed
|
2018-08-10 10:06:40 +03:00 |
|
Reima Hyvönen
|
99dc43074f
|
_mm256_cvtsi256_si32 breaks system, too much bits. back to extract
|
2018-08-10 09:59:33 +03:00 |
|
Reima Hyvönen
|
4f1f80b2cb
|
Transformed convert from 256 to cast 256 -> 128 and then convert from 128
|
2018-08-09 15:35:54 +03:00 |
|
Reima Hyvönen
|
4957555eb3
|
Removed leftover from 939
|
2018-08-09 15:25:03 +03:00 |
|
Reima Hyvönen
|
28b165c971
|
Clearified some sections, added _MM_SHUFFLE macro
|
2018-08-09 15:23:01 +03:00 |
|
Reima Hyvönen
|
dd04df8667
|
testing if error in both avx2 functions
|
2018-08-03 11:49:00 +03:00 |
|