Commit graph

2649 commits

Author SHA1 Message Date
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
Ari Lemmetti 0d5972bf03 Add missing sort to intra transform split search so mode at 0 is the best 2018-05-21 13:10:38 +03:00
Arttu Ylä-Outinen da6f21d47c
Merge pull request #198 from Ace17/master
Fix memset parameter
2018-05-17 14:42:01 +03:00
Sebastien Alaiwan 954bca7d6e Fix memset parameter 2018-05-17 11:24:49 +02:00
Jaakko Laitinen f9466efcbb Close file on error 2018-05-15 11:50:16 +03:00
Ari Lemmetti 6be81959d5 Workaround for compiling .asm files in Visual Studio 2017 2018-04-06 15:18:08 +03:00
Arttu Ylä-Outinen f033ad0ad0 Merge branch 'new-presets' 2018-04-03 11:01:53 +03:00
Arttu Ylä-Outinen 5c585c4fbc Update help message
Updates the default option values to match the medium preset.
2018-04-03 10:40:37 +03:00
Arttu Ylä-Outinen 2b4e22111a Update presets
The new presets are slower but have better coding efficiency.
2018-04-03 10:37:30 +03:00
Arttu Ylä-Outinen be5201cc13 Merge branch 'update-help' 2018-03-23 14:33:54 +02:00
Arttu Ylä-Outinen 7185519a1b Update command line help
- Adds missing default values.
- Adds help for --crypto and --key.
- Adds help for --rd=3.
- Adds help for --sao options.
- Some changes to help wording.
2018-03-23 14:33:04 +02:00
Arttu Ylä-Outinen 3606860504 Add --no-cpuid option
Equivalent to --cpuid=0.
2018-03-23 12:32:27 +02:00
Arttu Ylä-Outinen fb462b25ef Fix transform skip for inter
The transform skip flag in cu_info_t was stored under the intra
substruct even though transform skip can be used for inter as well. This
caused bitstream errors. Fixed by moving the flag out of the substruct.
2018-03-20 11:01:33 +02:00
Arttu Ylä-Outinen 982e60c695
Merge pull request #192 from PeterDaveHello/update-autogen.sh
Optimze git submodule in autogen.sh
2018-03-20 10:57:25 +02:00
Arttu Ylä-Outinen cf294d4e38
Merge pull request #193 from PeterDaveHello/Add-Table-of-Contents
Add Table of Contents in README
2018-03-20 10:57:06 +02:00
Peter Dave Hello 53ce0f4555 Add Table of Contents in README 2018-03-19 00:38:45 +08:00
Peter Dave Hello 0c5d5e5781 Optimze git submodule in autogen.sh 2018-03-19 00:36:01 +08:00
Marko Viitanen 0164291688
Merge pull request #191 from PeterDaveHello/refactor-Dockerfile
Refactor Dockerfile
2018-03-18 11:14:57 +02:00
Marko Viitanen e71bc57523
Merge pull request #190 from PeterDaveHello/patch-1
Update Dockerfile base image to Ubuntu 18.04
2018-03-18 11:04:43 +02:00
Peter Dave Hello 8380b6c0f3 Update Dockerfile base image to Ubuntu 18.04 2018-03-18 14:42:57 +08:00
Peter Dave Hello 2e8c2e2135 Reuse local repository in Dockerfile 2018-03-18 14:25:05 +08:00
Peter Dave Hello 960ea5144b Fix Dockerfile indentation 2018-03-18 14:13:50 +08:00
Peter Dave Hello e1570a2a5b Use && instead of ; in Dockerfile steps 2018-03-18 14:12:43 +08:00
Arttu Ylä-Outinen 75fec2927a
Merge pull request #186 from ffontaine/master
Check also for libcryptopp.pc in configure.ac
2018-03-05 11:01:47 +02:00
Fabrice Fontaine 411276d6f2 Check also for libcryptopp.pc in configure.ac
cryptopp in version 6.1.0 added a pkg config file which is named libcryptopp.pc
so search also for this name in addition to cryptopp and libcrypto++

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-03-04 17:01:26 +01:00
Arttu Ylä-Outinen c13604468d Merge branch 'tz-changes' 2018-03-01 14:04:44 +02:00
Arttu Ylä-Outinen b64e46707d Skip raster scan step in TZ search
Raster scan is very slow and the BD-rate improvement is marginal.
2018-03-01 14:04:03 +02:00
Arttu Ylä-Outinen 6877064230 Add zero neighborhood check to TZ search
Adds an additional grid search step that starts from the zero motion
vector after the normal grid search. The search range for this step is
half of the normal range.
2018-03-01 14:02:13 +02:00
Arttu Ylä-Outinen 74a413c46a Switch to star refinement in TZ search 2018-03-01 13:06:14 +02:00
Arttu Ylä-Outinen ebee428ee1 Add loop termination to TZ grid search
Terminates the grid search if no better motion vector was found in the
last three iterations.
2018-03-01 13:06:06 +02:00
Arttu Ylä-Outinen 4c175621dd Fix TZ grid search and star refinement
- Changes TZ grid search and star refinement to keep the origin constant
  instead of moving to the best position after each iteration.
- Changes star refinement to loop until there is no more improvement,
  instead of running the step only once.
2018-03-01 12:56:57 +02:00
Arttu Ylä-Outinen 9c2d0074a2 Add rounding of motion vectors in inter search
When the starting point for integer motion estimation was selected among
the merge candidates, the candidate motion vectors were always rounded
down. This commit changes the rounding so that they are rounded to the
nearest integer MV instead.
2018-03-01 09:39:21 +02:00
Ari Lemmetti 662430d441 Select CU type based on SSD, transform unit tree and mode cost of luma and chroma on --rd=2 2018-02-22 19:26:48 +02:00
Arttu Ylä-Outinen 69756e2491 Merge branch 'bipred-fixes' 2018-02-14 11:48:44 +02:00
Arttu Ylä-Outinen cb06cfeadb Drop temporary arrays in bipred search
Changes bipred search to use the original source and reconstruction
arrays directly instead of copying them.
2018-02-14 11:20:51 +02:00
Arttu Ylä-Outinen 0ea516ba30 Move bipred search to a separate function 2018-02-14 09:56:53 +02:00
Arttu Ylä-Outinen 6f506be12d Drop dynamic allocation from bipred search
Moves the temporary LCU struct used in bipred search from the heap to
the stack. The single malloc call was a huge bottleneck in bipred.
2018-02-14 09:55:02 +02:00
Arttu Ylä-Outinen 7155dd0db7 Add negative references to L1 list
Changes reference index list creation so that the negative references
are added to L1 in addition to L0 when biprediction is enabled and no
reordering of pictures is done. Biprediction can now be used with the
low-delay GOP structure.
2018-02-07 14:54:52 +02:00
Arttu Ylä-Outinen 4b24cd03a2 Update for crypto++ 6.0.0 compatibility
Changes the crypto module to use unsigned char instead of byte. The byte
typedef is no longer included in the global namespace in crypto++ 6.0.0.
See https://github.com/weidai11/cryptopp/issues/442.

Fixes #184.
2018-02-05 13:35:03 +02:00
Arttu Ylä-Outinen 75a8700630 Merge branch 'zero-coeff-check' 2018-01-29 12:42:56 +02:00