Commit graph

2840 commits

Author SHA1 Message Date
Arttu Ylä-Outinen c438bb4a19 Add an option to skip CABAC for residual costs
Adds command line option --fast-residual-cost=<limit>. When QP is below
the limit, estimates the cost of coding the residual coefficients from
the sum of absolute coefficients. Skipping CABAC is not worth it with
high QPs because there are fewer coefficients so CABAC is not as slow.
2018-07-16 12:31:20 +03:00
Reima Hyvönen 08f4ebdcda Merge branch 'bipred_recon' of https://gitlab.tut.fi/TIE/ultravideo/kvazaar 2018-07-12 09:30:15 +03:00
Reima Hyvönen a4bf77f208 Tested some extract functions 2018-07-12 09:29:32 +03:00
Reima Hyvönen 7f18c12227 testing pipelining 2018-07-11 15:16:23 +03:00
Reima Hyvönen c05033a893 Even more useless vectors removed 2018-07-11 15:09:14 +03:00
Reima Hyvönen 884cb77238 Removed some not used vectors 2018-07-11 15:06:11 +03:00
Reima Hyvönen 792689a5ff Removed for-loops, added extract instead 2018-07-11 14:56:41 +03:00
Reima Hyvönen f9c7f6ee66 Added some break-operations for avx2 optimation 2018-07-11 14:15:38 +03:00
Reima Hyvönen cc064da143 some more optimation for bipred 2018-07-11 11:27:54 +03:00
Reima Hyvönen 9a339eef89 Merge branch 'bipred_recon' of https://gitlab.tut.fi/TIE/ultravideo/kvazaar into HEAD
# Conflicts:
#	build/kvazaar_lib/kvazaar_lib.vcxproj
2018-07-10 16:21:04 +03:00
Reima Hyvönen a22cf03ddb Updated to have no movement function to avx2 strategies 2018-07-10 16:07:15 +03:00
Arttu Ylä-Outinen cbb5b20449 Merge branch 'gitlab-ci-fix' 2018-07-06 08:59:55 +03:00
Arttu Ylä-Outinen 31786a9266 Fix ASan test on Gitlab CI
Changes test_external_symbols.sh to expect a failure with ASan.
2018-07-05 16:05:55 +03:00
Arttu Ylä-Outinen b7474eb532 Fix SAO buffer sizes
Increases sizes of buffers used for SAO reconstruction to avoid stack
buffer overflow in AVX2 SAO reconstruction.
2018-07-05 15:56:30 +03:00
Arttu Ylä-Outinen 120f285eb7 Fix Gitlab CI tests
Drops the build stage in Gitlab CI tests and includes build in the test
jobs. Building in a separate stage did not work as intended. The test
jobs rebuilt Kvazaar without the CFLAGS given in the build jobs and
overwrote the results from the build jobs. The test were therefore run
without the sanitizers enabled.
2018-07-05 14:44:15 +03:00
Arttu Ylä-Outinen b37470e80f
Merge pull request #207 from jbeich/maltivec
Unbreak build on PowerPC if AltiVec isn't supported
2018-07-04 11:06:41 +03:00
Arttu Ylä-Outinen ee27d9359b
Merge pull request #206 from jbeich/powerpc
Clean up macOS includes in src/strategyselector.c
2018-07-04 11:05:07 +03:00
Reima Hyvönen ea83ae45f0 Toimiva ratkaisu 2018-07-03 11:18:51 +03:00
Jan Beich 4f4bea7496 Check -maltivec is supported before using
PowerPC target may lack or have non-standard FPU:

$ cc -dumpmachine
powerpcspe-undermydesk-freebsd
$ cc -c -maltivec -Isrc src/strategies/altivec/picture-altivec.c
src/strategies/altivec/picture-altivec.c:1: error: AltiVec and E500 instructions cannot coexist
2018-07-02 23:25:23 +00:00
Jan Beich b892d820f8 Clean up macOS includes on powerpc* after 93e1c9f1c3
strategyselector.c:426:25: machine/cpu.h: No such file or directory
2018-07-02 21:52:45 +00:00
Reima Hyvönen 17babfffa4 25.6 working optimation, ~50% faster than original 2018-06-25 17:06:16 +03:00
Arttu Ylä-Outinen 2f995f4325
Merge pull request #205 from jbeich/powerpc
Unbreak build on non-Linux powerpc*
2018-06-19 13:28:00 +03:00
Arttu Ylä-Outinen c1398ef818 Permit --period=1 with any GOP structure
All intra coding is a special case so it can be permitted even though
Kvazaar normally only supports intra periods that are divisible by the
GOP length.
2018-06-18 12:26:11 +03:00
Arttu Ylä-Outinen abdebe0bf9 Fix --owf help message
The number of parallel frames is --owf plus one, not --owf minus one.

Fixes #204.
2018-06-18 09:33:36 +03:00
Jan Beich 93e1c9f1c3 Add AltiVec detection for BSDs
strategyselector.c:377:26: linux/auxvec.h: No such file or directory
2018-06-17 15:38:24 +00:00
Arttu Ylä-Outinen 69d836d1b2 Merge branch 'tier-flag' 2018-06-14 12:43:52 +03:00
Arttu Ylä-Outinen ac9c07be29 Update README and manpage 2018-06-14 12:43:10 +03:00
Miika Metsoila 98972d26c2 Document that the high tier requires level 4 or higher 2018-06-14 12:41:03 +03:00
Miika Metsoila 62b44efaa4 Write the encoding tier (main/high) into the bitstream 2018-06-14 12:41:03 +03:00
Arttu Ylä-Outinen 324203e5b4 Merge branch 'ci-changes' 2018-06-14 12:31:32 +03:00
Arttu Ylä-Outinen 5577c0d64b Enable sanitizers in Gitlab CI
Enables build and test with AddressSanitizer, ThreadSanitizer and
UndefinedBehaviorSanitizer in Gitlab CI configuration. The LeakSanitizer
component of AddressSanitizer is disabled because ptrace cannot be used
inside the container.
2018-06-14 12:11:44 +03:00
Arttu Ylä-Outinen b697d1fb96 Print config.log when configure fails in Gitlab CI 2018-06-14 12:09:18 +03:00
Arttu Ylä-Outinen 121cb659ba Cosmetic fixes to .gitlab-ci.yml
- Drops trailing whitespace.
- Splits long lines.
2018-06-14 12:09:16 +03:00
Marko Viitanen 6065acd67e Use ultravideo/kvazaar_ci_base image to reduce installation needs 2018-06-14 12:05:46 +03:00
Marko Viitanen ca248d5499 Try running tests in separate job 2018-06-14 12:05:46 +03:00
Marko Viitanen 08c3cf3f2d Add .gitlab-ci.yml 2018-06-14 12:05:46 +03:00
Arttu Ylä-Outinen 2861bf06d2 Use AddressSanitizer instead of valgrind
Changes GCC test on Travis CI to use AddressSanitizer instead of
valgrind for memory error detection.
2018-06-14 11:56:39 +03:00
Arttu Ylä-Outinen a4a024443b Print config.log when configure fails on Travis CI 2018-06-14 11:52:42 +03:00
Arttu Ylä-Outinen 15fa6da2e3 Enable UndefinedBehaviorSanitizer in CI tests
Adds an entry with -fsanitize=undefined to the Travis CI build matrix.
2018-06-14 11:52:33 +03:00
Arttu Ylä-Outinen 16fe5e0593 Enable ThreadSanitizer in CI tests
Adds an entry with -fsanitize=thread to the Travis CI build matrix.
2018-06-14 09:53:12 +03:00
Arttu Ylä-Outinen cbac8a106e Disable valgrind in tests by default
Changes tests so that valgrind is enabled only when the environment
variable KVZ_TEST_VALGRIND is set and equal to "1".
2018-06-14 09:30:55 +03:00
Arttu Ylä-Outinen a343f6d587 Prepare for delta QPs at CU-level
- Replaces lcu_dqp_enabled with max_qp_delta_depth in encoder_control_t.
- Fixes set_cu_qps so that it can handle quantization groups of
  arbitrary size.
- Fixes computation of QP predictors so that it works for quantization
  groups of arbitrary size.
2018-06-13 15:36:19 +03:00
Arttu Ylä-Outinen a3274de3b4 Merge branch 'wextra' 2018-06-12 14:03:13 +03:00
Arttu Ylä-Outinen 0692375caa Fix clobbered warnings in tests
Adds volatile to loop variables in kvazaar tests in order to fix
clobbered warnings.
2018-06-12 14:00:29 +03:00
Arttu Ylä-Outinen ff17e0ba17 Enable -Wextra
Enables extra warnings with -Wextra by default and disables sign-compare
and unused-parameter warnings.
2018-06-12 11:20:42 +03:00
Arttu Ylä-Outinen dc6b2024ea Modify reference count asserts to fix data races
Changes asserts on the reference count of objects to assert the value
after KVZ_ATOMIC_INC instead of directly checking the value. Fixes some
data races detected by TSan.
2018-06-12 09:35:07 +03:00
Ari Lemmetti 4fb1c16c61 Add early termination for intra rdo when a zero coefficient block is found. 2018-06-08 21:03:07 +03:00
Ari Lemmetti 492529fb7a Add the same comment to help message as well... 2018-05-30 14:13:15 +03:00
Ari Lemmetti 2bc459411d Add note about wpp and tiles not being supported simultaneously by any HEVC profile 2018-05-30 13:30:09 +03:00
Ari Lemmetti f9463d08b5 Clarify visualizator instructions 2018-05-30 12:58:13 +03:00