Commit graph

2894 commits

Author SHA1 Message Date
Marko Viitanen 20b66c9949 Sync to VTM 8.2 and add separate height to last_sig coding 2020-04-29 08:52:38 +03:00
Jan Beich 1fa69c705d Rename truncate() from 30ce461d98 to avoid conflict with POSIX version
strategies/avx2/dct-avx2.c:55:23: error: static declaration of 'truncate' follows non-static declaration
static INLINE __m256i truncate(__m256i v, __m256i debias, int32_t shift)
                      ^
/usr/include/stdio.h:448:6: note: previous declaration is here
int      truncate(const char *, __off_t);
         ^
2020-04-22 16:09:42 +00:00
Ari Lemmetti 9753820b3a Update version to 2.0.0 2020-04-22 01:03:36 +03:00
Ari Lemmetti 40e81f3243 Update preset tables. Update docs. 2020-04-22 01:03:21 +03:00
siivonek 54f438a75c Update VAQ help text. Update docs. Change some lingering tabs to spaces. 2020-04-20 16:52:07 +02:00
Marko Viitanen 86d76b19a4 Fix intra neighboring block selection and clean some unused code 2020-04-16 14:12:40 +03:00
Marko Viitanen 27b4dd50f8 Fix picture header to code Inter frame 2020-04-14 08:24:11 +03:00
Ari Lemmetti f31dddc019 Bypass inverse quantization and inverse transform when trying early skip 2020-04-10 16:02:09 +03:00
Pauli Oikkonen fbdb1e2d15 Add correct path to sao_shared_generics.h in makefile 2020-04-08 19:27:12 +03:00
Pauli Oikkonen 8617530b13 Use _mm_store_epi64 instead of _mm_cvtsi128_si64
Fix 32-bit builds that tend to lack the cvt intrinsic. Hope it will be
optimized to a movq r64, xmm on modern platforms though
2020-04-07 23:51:54 +03:00
Pauli Oikkonen a82966c0f5 Fix lacking _mm256_cvtss_f32 intrinsic on VS
Cast __m256 into __m128 first, the XMM variant of the intrinsic has been
around for a long enough time to be supported
2020-04-07 22:38:10 +03:00
Marko Viitanen 27ffba2c9c Fix terminating bit condition at the end of the slice 2020-04-07 15:30:02 +03:00
Marko Viitanen e737a878a6 Fix split flags and remove an extra terminating bit 2020-04-07 09:57:30 +03:00
Joose Sainio c369ff8873 Fix a potential division by zero in a floating point operation
When C is calculated with K if the value of K is not clipped before in some
cases it is possible that K gets such a large negative value that bpp^K is
rounded to zero. In real-life cases this is extremely rare and clipping
beforhand has very little to no effect.

Also remove commented debug prints
2020-04-06 11:05:49 +03:00
Ari Lemmetti 901c25c0c8 Merge branch 'vaq' 2020-04-03 19:51:17 +03:00
Ari Lemmetti 51451be5ef Handle cases where the number of pixels is not divisible by 32 2020-04-03 19:37:47 +03:00
siivonek ee544304f1 Make function static to not mess up tests. 2020-04-03 15:22:34 +02:00
siivonek e5267f7706 Fix define for use with Visual Studio. 2020-04-03 15:11:01 +02:00
siivonek 9e34369304 Merge branch 'vaq' of https://gitlab.tut.fi/TIE/ultravideo/kvazaar into vaq 2020-04-03 12:35:04 +02:00
siivonek d025977949 Clamp edge lcu pixels if dimensions are not 64 divisible. 2020-04-03 12:33:14 +02:00
Pauli Oikkonen addc1c3ede Fix warning about potentially unused hsum_8x32b
There's a lot of alternative options available, such as making it
globally visible with a kvz_ prefix, force inlining it, or anything.
This could be good too, hope it won't be compiled at all to translation
units where it's not used.
2020-04-02 16:44:22 +03:00
siivonek e3ba0bfb8c Fix memory leak. 2020-04-02 14:15:36 +02:00
siivonek 566680af7b Move function hsum to file where it is used to avoid errors. 2020-04-02 14:03:06 +02:00
siivonek 58be514e2a Fix pipeline error. 2020-04-02 13:50:08 +02:00
siivonek 2aa0d97589 Add VAQ test in test_tools. Bump minor version number in configure.ac. Update help text for VAQ. 2020-04-01 18:16:39 +02:00
siivonek c6e421019e Merge vaq-simd 2020-03-31 21:40:29 +02:00
Jaakko Laitinen 8e4b738900 Fix error when first value in pu depth list is omitted 2020-03-31 16:57:12 +03:00
Jaakko Laitinen 54ef0bbfd2 Fix unintended functionality when giving multiple --pu-depth-intra/inter list parameters 2020-03-31 16:39:56 +03:00
Jaakko Laitinen cb0c7b23b5 Merge branch 'intra_qp_offset_auto' into 'master'
Add auto option to intra-qp-offset

See merge request TIE/ultravideo/kvazaar!7
2020-03-31 16:17:36 +03:00
Pauli Oikkonen 99889dab15 Fix switch(bool) in picture-avx2.c
It passes on GCC but warns on Clang
2020-03-31 15:42:19 +03:00
Jaakko Laitinen e0440c3de1 Update docs 2020-03-31 15:27:48 +03:00
Jaakko Laitinen 7760dcf441 Remove intra qp offset from preset parameters 2020-03-31 14:06:07 +03:00
Jaakko Laitinen 8bd1a2b667 Update help message 2020-03-31 13:19:05 +03:00
Jaakko Laitinen b4f5486190 Set intra qp offset default to auto 2020-03-31 12:58:40 +03:00
Jaakko Laitinen 740688c67d Add auto option to intra qp offset 2020-03-31 11:56:44 +03:00
Marko Viitanen a0af87bdc0 Update contexts to match VTM 8.0 2020-03-30 14:34:50 +03:00
Marko Viitanen d36ba85861 Fixed PPS and slice header to match VTM 8.0 (only for I-Frame!) 2020-03-30 12:55:12 +03:00
Marko Viitanen 64b9177cf0 Fix SPS to match VTM 8.0 2020-03-30 09:56:38 +03:00
Pauli Oikkonen 0c7bfa7dc9 Fix AVX2 on Clang
Besides just -mavx2, AVX2 support depends on a couple minor instruction
set extensions that should always exist on AVX2-capable hardware. Too
bad the different bit twiddling instructions are invoked slightly
differently between GCC and Clang, but now Clang seems to also produce
an AVX2-capable build.
2020-03-26 18:48:48 +02:00
siivonek 89d3e674ce Comment out code which possible messes up OBA 2020-03-26 17:49:31 +02:00
siivonek be7d9ddec5 Fix error in frame variance calculation. Chroma channels were not added to variance 2020-03-26 14:33:00 +02:00
Marko Viitanen 8908324df8 Fix PTL DPB HDR param headers to match VTM 8.0 2020-03-26 10:40:27 +02:00
Marko Viitanen d622ebb1f4 Fix NAL types to match VTM 8.0 2020-03-26 10:39:35 +02:00
Jaakko Laitinen 45ca8f8113 Merge branch 'master' into 'extended_pu-depths' 2020-03-25 15:11:08 +02:00
siivonek 5986e71535 Fix mistake 2020-03-20 13:43:44 +02:00
Jaakko Laitinen d6ffe9e495 Update docs 2020-03-20 13:27:07 +02:00
Jaakko Laitinen 621450cc1d Update --help 2020-03-20 13:07:48 +02:00
Jaakko Laitinen aaac3df69b Add prefix to kvazaar.h define 2020-03-20 09:04:00 +02:00
siivonek 2a85be5752 Move qp_to_lambda so it is defined before use. Change some tabs to spaces 2020-03-19 22:13:53 +02:00
siivonek 0a4ce3c0aa Add vaq to new rate control 2020-03-19 21:43:52 +02:00
siivonek 1bbc598d75 Merge branch 'master' into vaq 2020-03-19 20:19:43 +02:00
Joose Sainio b53911d637 Merge branch 'rc-intra' 2020-03-19 13:34:15 +02:00
Joose Sainio a304a8ea6e Add weights for GOP 16 based on fitting a power curve to bits spent by HM 2020-03-19 11:13:43 +02:00
Joose Sainio e823ac1dae miscellaneous fixes
- bump library version
- add help desk for --clip-neighbour
- update the default values of --clip-neighbour and --intra-bits
- update tests to more sensible
2020-03-19 10:47:28 +02:00
Jaakko Laitinen b2ddba38c2 Set correct size for pu-depth min/max data structure 2020-03-19 09:29:43 +02:00
Joose Sainio 2c345bc3cf try to fix tsan issue 2020-03-18 14:58:54 +02:00
Jaakko Laitinen fe428dcbe1 Fix no gop functionality 2020-03-18 11:03:33 +02:00
Jaakko Laitinen af3d559d8d Let pu-depth be defined per gop-layer 2020-03-17 17:57:18 +02:00
Ari Lemmetti cbd77944d8 Costs in rough intra search may be negative. Get rid of UBSan error. 2020-03-16 22:13:14 +02:00
Ari Lemmetti aa0ade3f65 Cast values to unsigned to make UBSan not trigger due to left-shifting negatives 2020-03-16 19:52:34 +02:00
RLamm 27fe716654 Fixed reference POC indexing 2020-03-11 15:33:37 +02:00
RLamm bf24831780 Attempt to fix random crashes 2020-03-11 15:31:47 +02:00
RLamm 887659db1f Attempted to scale the extra_mvs 2020-03-11 15:31:46 +02:00
siivonek 8d9719ff90 Merge branch 'master' into vaq 2020-03-05 14:17:01 +02:00
Joose Sainio c9a8f2a596 Completely disable intra based model for frame 1 2020-03-04 12:52:13 +02:00
Joose Sainio 19c79c3e58 don't use the intra frame based estimation if the result is bad 2020-03-04 09:26:22 +02:00
Ari Lemmetti 7b7358c25a Update presets veryslow and placebo a bit
Both use now --gop 16, --intra-qp-offset -3, --me tz, and --transform-skip
2020-03-03 20:41:01 +02:00
Pauli Oikkonen 60e7956dc5 Disable inaccurate integer variance calculation for now 2020-03-02 19:18:55 +02:00
Pauli Oikkonen fc1b91335b Implement variance calculation in integer math
Maybe this is a bit faster than FP, it's not accurate though
2020-03-02 18:17:18 +02:00
Pauli Oikkonen 35c825c75f Move hsum_8x32b to avx2_common_functions 2020-02-27 17:52:17 +02:00
Pauli Oikkonen b00ac7d1c4 AVX2 version of buffer variance calculation 2020-02-25 15:57:56 +02:00
siivonek a380e43bda Add chroma channels to variance calculation. 2020-02-24 19:54:34 +02:00
Pauli Oikkonen 1bd9c6dd93 Make a strategy out of pixel_var 2020-02-24 19:37:36 +02:00
Pauli Oikkonen 86ebf366e1 fix typo 2020-02-24 18:18:10 +02:00
Joose Sainio f81de41775 Merge branch 'master' into rc-intra 2020-02-24 15:30:57 +02:00
siivonek 5688bcd646 Merge branch 'master' into vaq 2020-02-21 17:11:10 +02:00
siivonek 908ecb1767 Add rounding to aq offsets. Fix typo 2020-02-21 13:51:43 +02:00
Ari Lemmetti 1dfc69b42e Consider merge index bits in merge analysis and early skip 2020-02-20 09:43:58 +02:00
Joose Sainio 7deb22c8e8 Merge branch 'master' into rc-intra 2020-02-19 15:01:04 +02:00
Kari Siivonen (TAU) c972ca9067 Add assert to check if deltaQP out of bounds. Clip adaptive QP to [-13, 12]. 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) f07990794f Fix error in vaq pixel blit range calculation 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) 57ed40c263 Fix application of aq offset 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) be2f420d61 Change: vaq requires parameter. Parameter defines vaq strength ex. 15 == 1.5 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) bf1b2c1e22 Add define for vaq strength parameter 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) 150559a7e8 Fix bugs. Enable set_qp_in_cu when using vaq 2020-02-18 13:20:26 +02:00
Kari Siivonen (TAU) c8c71274ee Change tabs to spaces. 2020-02-18 13:20:26 +02:00
siivonek 888382953d Implement calculation of vaq values. Values not used yet. 2020-02-18 13:20:25 +02:00
siivonek ad40a88c09 Add no-vaq option to vaq 2020-02-18 13:20:25 +02:00
siivonek 09f0a1c52e Fix typo in comment 2020-02-18 13:20:25 +02:00
siivonek 84fb3fd7d1 aq: Add --vaq commandline option 2020-02-18 13:20:25 +02:00
Joose Sainio 2a98f5db1e fix intra-bits for lp-gop 2020-02-18 10:38:29 +02:00
Ari Lemmetti 71d9327f62 Further improve fast bipred 2020-02-17 20:32:52 +02:00
Ari Lemmetti 80c26870d5 Update docs 2020-02-15 23:29:18 +02:00
Ari Lemmetti ebb183cc01 Add option to make intra QP offset configurable 2020-02-15 22:54:48 +02:00
Ari Lemmetti be3e08d6db Add gop.h to Makefile 2020-02-15 22:54:47 +02:00
Ari Lemmetti 1354acd358 Prevent negative values being written to SPS with --gop=0 2020-02-15 22:54:47 +02:00
Ari Lemmetti fe4869916c Disable GOP and intra qp offset for all-intra coding automatically 2020-02-15 22:54:46 +02:00
Ari Lemmetti 9849fb7c77 Enable experimental rate control for GOP 16 2020-02-15 22:54:46 +02:00
Ari Lemmetti a0a22dec8a Remove deprecated / unused lambda adjustments 2020-02-15 22:54:46 +02:00
Arttu Ylä-Outinen 829a70e6a7 Copy lowdelay GOP definition from HM 2020-02-15 22:36:58 +02:00