siivonek
54e5a2181d
[mrl] Fix rebase mistake. Disable use of PDPC if MRL is used.
2021-11-29 17:11:28 +02:00
siivonek
511ce4991b
[mrl] Pass multi_ref_idx to generic angular and DC prediction funcs. Fix some outdated comments.
2021-11-29 17:02:27 +02:00
siivonek
a5dc2a3ce1
Disable MRL when copying best mode from top left CU.
2021-11-29 17:02:26 +02:00
siivonek
55a3274de8
Skip searching planar mode in RDO search if MRL is in use.
2021-11-29 17:02:26 +02:00
siivonek
1064603164
Limit MRL search to only MPM modes.
2021-11-29 17:02:26 +02:00
siivonek
bbf0f02f3c
Fix mistake in MRL commandline value parsing.
2021-11-29 17:02:26 +02:00
siivonek
f0a412e202
Fix errors in MRL implementation in intra rdo search.
2021-11-29 17:02:26 +02:00
siivonek
9396940900
Implement writing MRL bits to cabac.
2021-11-29 17:02:25 +02:00
siivonek
8fb5220b17
[mrl] Implement MRL into cabac coding.
2021-11-29 17:02:15 +02:00
siivonek
81ddf2f83a
[mrl] Add MRL support to intra rdo search.
2021-11-29 16:59:56 +02:00
siivonek
c3860f1cbc
Move max reference line idx define to proper place.
2021-11-29 16:59:56 +02:00
siivonek
cdb64f5e86
Change MRL variable name to snake_case.
2021-11-29 16:59:55 +02:00
siivonek
ea04feaaca
Add MRL handling to reference building.
2021-11-29 16:59:55 +02:00
siivonek
f22af05dd6
Extend the reference arrays for MRL.
2021-11-29 16:59:55 +02:00
siivonek
3462ac7219
Add multiRefIndex to reference handling.
2021-11-29 16:59:55 +02:00
siivonek
b8d4af3660
Extend reference arrays for use with MRL.
2021-11-29 16:59:55 +02:00
siivonek
b0f5b93c6d
Add commandline option for multiple reference line (MRL) intra prediction.
2021-11-29 16:59:55 +02:00
Marko Viitanen
3fda2dd6c8
[cleanup] Fix some warnings
2021-11-29 16:31:09 +02:00
Marko Viitanen
810270907b
Fix log2_max_pic_order_cnt_lsb_minus4 by using the poc_lsb_bits variable, fixes gop=16
2021-11-26 20:31:12 +02:00
Marko Viitanen
44f4ce7063
[bipred] Fix reference list writing with low-delay gop with bipred use-case
2021-11-26 17:16:32 +02:00
Marko Viitanen
f0f77b9bfa
[bipred] Fix sh_num_ref_idx_active_minus1 flag when gop==0 and bipred are used
2021-11-26 17:12:59 +02:00
Marko Viitanen
36d302ba38
[bipred] Fix reference list writing when gop==0 and bipred are used, add to CI also
2021-11-26 17:04:30 +02:00
Marko Viitanen
e662a2747b
Merge branch 'tile_fixes'
2021-11-26 14:30:05 +02:00
Marko Viitanen
b648bb1cd1
[tiles] Clear HMVP size properly before each leaf encoder
2021-11-26 14:00:39 +02:00
Marko Viitanen
056ed3f979
[tiles] Init HMVP for each tile
2021-11-26 10:26:43 +02:00
Joose Sainio
385e91399a
[intra rdo] Raise maximum rd level to 4
...
Separate the rd option for chroma intra mode search from the full intra
mode search, i.e., rd=3 enables chroma mode search and rd=4 enables full
intra mode search.
2021-11-26 08:12:37 +02:00
Joose Sainio
ce175c503f
[cclm] remove unnecessary calculation of the downsample luma reference
2021-11-26 08:12:37 +02:00
Joose Sainio
697d4c0652
[cclm] Add bits to RD calculation
2021-11-26 08:12:31 +02:00
Joose Sainio
85ff5f23b1
[cclm] Fix accessing elements beyond the CU array
...
# Conflicts:
# src/intra.c
2021-11-26 08:12:25 +02:00
Joose Sainio
80ddb60ccf
[cclm] fix cclm when deblocking is enabled
2021-11-26 08:12:25 +02:00
Joose Sainio
f030158703
[cclm] Fix search and parameter generation for CCLM
2021-11-26 08:12:17 +02:00
Joose Sainio
d9875a3d92
[cclm] fix trying cclm on the upper level
2021-11-26 08:11:54 +02:00
Joose Sainio
c16ce9a82b
[cclm] fix bin type for the second cclm mode bit
2021-11-26 08:11:53 +02:00
Joose Sainio
87a458dc85
[cclm] fix incorrect log_width for chroma ref generation
2021-11-26 08:11:53 +02:00
Joose Sainio
7187678526
[cclm] Only do cclm search when it is enabled and add test for cclm
2021-11-26 08:11:53 +02:00
Joose Sainio
754607dae4
[cclm] bitstream writing + cabac
2021-11-26 08:11:53 +02:00
Joose Sainio
1c431d8f88
[cclm] Add commandline argument
2021-11-26 08:11:39 +02:00
Joose Sainio
70f6afff4f
[cclm] Search should be working
...
still has duplicate code and inefficiencies, but the actual search *should*
be working.
2021-11-26 08:09:54 +02:00
Joose Sainio
91877ef2c4
[cclm] fix condition for selecting the data from frame buffer and not ctu
2021-11-26 08:09:54 +02:00
Joose Sainio
ecc55c9edf
[cclm] align ref pixel generation code and add comments
2021-11-26 08:09:53 +02:00
Joose Sainio
677bf1edcb
[cclm] linear transform
2021-11-26 08:09:53 +02:00
Joose Sainio
4e8c9043a1
[cclm] CCLM parameter calculation *should* work correctly
2021-11-26 08:09:53 +02:00
Joose Sainio
93c02644c8
[cclm] WIP fix parameter calculation and add calling to the functions
2021-11-26 08:09:53 +02:00
Joose Sainio
ef5a205faa
[cclm] WIP: initial implementation of the cclm parameter calculation function
2021-11-26 08:09:52 +02:00
Marko Viitanen
62250a692d
[tiles] Move HMVP from state->frame to state->tile->frame, so each tile has own lut
2021-11-25 20:21:13 +02:00
Marko Viitanen
d8a8f02471
[tiles] Set rectangular slices flag -> I-frames working with tiles
2021-11-25 16:24:51 +02:00
Marko Viitanen
4c578d9cad
[tiles] Write correct headers when tiles are enabled
2021-11-25 15:36:28 +02:00
Marko Viitanen
47108a9bb6
[tmvp] Change some variables to unsigned for ubsan error fix
2021-11-25 12:07:02 +02:00
Marko Viitanen
f3d27b0a4b
[tmvp] Select correct reflist and reverse the MVs when selecting for L1, add tmvp to tests
2021-11-25 11:51:39 +02:00
Marko Viitanen
83430a49f2
[tmvp] Round TMVP colocated MVs using float conversion from VTM
2021-11-24 21:57:46 +02:00
Marko Viitanen
37405ffdee
[tmvp] Remove check for duplicate candidates since it's not used in VVC
2021-11-24 19:57:46 +02:00
Marko Viitanen
cfd9b46328
[tmvp] Write sh_collocated_ref_idx when more than one picture in L0 list
2021-11-24 15:23:29 +02:00
Marko Viitanen
8dc2cc32f7
[tmvp] Replace C3 and H with C0 and C1 in get_temporal_merge_candidates()
2021-11-24 15:19:01 +02:00
Marko Viitanen
348f54f5bb
[tmvp] Change maximum MV in scaled mv clipping
2021-11-24 15:18:11 +02:00
Marko Viitanen
12e38684ff
[inter] Change mvd coding cost to use cabac contexts
2021-11-23 16:25:31 +02:00
Marko Viitanen
b644e85c1a
[bipred] Fix bipred candidate selection
2021-11-23 10:58:47 +02:00
Marko Viitanen
54eaba3dee
Fix merge issues and license texts
2021-11-23 08:46:06 +02:00
Marko Viitanen
885570e181
Merge branch 'master' of https://github.com/ultravideo/kvazaar
2021-11-22 22:11:32 +02:00
Marko Viitanen
1b86533b00
[inter] Scale MV's to qpel for cost calculation
2021-11-22 21:50:40 +02:00
Marko Viitanen
7df4542c48
[fme] Fix filter coeffs used in kvz_filter_qpel_blocks_diag_luma_avx2()
2021-11-22 20:50:00 +02:00
Marko Viitanen
64705a27ee
[fme] Enable 1/16th luma pixel fme
2021-11-22 20:31:30 +02:00
Ari Lemmetti
9e40f435cb
Fix array sizes to prevent ASAN errors (large block interpolation).
2021-11-22 17:44:00 +02:00
Ari Lemmetti
054dfdb51b
Fix array sizes to prevent ASAN errors (large block interpolation).
2021-11-22 17:38:03 +02:00
Marko Viitanen
33fc02d879
[me] Fix MV scaling in TZ search
2021-11-22 13:35:52 +02:00
Marko Viitanen
25fb0dd3d9
[fme] Disable kvz_sample_quarterpel_luma_avx2() for now since it's causing asan problems
2021-11-22 13:17:49 +02:00
Marko Viitanen
867304970e
[fme] Enable avx2 interpolation and fix some warning about shifting mv's
...
* Also switch mv int16_t to mv_t in many places
2021-11-22 10:38:18 +02:00
Marko Viitanen
d183c78fad
[fme] Change fracmv_within_tile() to use internal MV resolution
2021-11-22 10:06:38 +02:00
Ari Lemmetti
2bdfb3b536
Rename variables to be less misleading
2021-11-21 02:20:42 +02:00
Ari Lemmetti
eb0f42aa96
Update comment
2021-11-21 02:11:50 +02:00
Ari Lemmetti
86b37a8e02
Minor formatting
2021-11-21 02:06:49 +02:00
Ari Lemmetti
fd20462202
Fix more newlines...
2021-11-21 02:01:57 +02:00
Ari Lemmetti
40ca21d221
Consistent naming part 3
2021-11-21 01:04:14 +02:00
Ari Lemmetti
6c0bdb45b9
Consistent naming part 2
2021-11-21 00:58:52 +02:00
Ari Lemmetti
a68d73674b
Consistent naming part 1
2021-11-21 00:32:01 +02:00
Ari Lemmetti
8f0e96162a
Formatting
2021-11-20 23:33:57 +02:00
Ari Lemmetti
a236b32c52
Fix newlines
2021-11-20 23:14:31 +02:00
Ari Lemmetti
5225dcea3c
Implement missing block sizes. Fix types and conditions.
2021-11-20 22:53:37 +02:00
Marko Viitanen
ad8bad3f94
[inter] Scale x and y correctly in fracmv_within_tile()
2021-11-19 17:51:46 +02:00
Marko Viitanen
8841ed9c21
[inter] Fix fracmv_within_tile() assert to use correct mv resolution
2021-11-19 17:37:11 +02:00
Marko Viitanen
4d20461410
[inter] Limit merge search of some blocks with sub 1/4 pixel mv's
2021-11-19 17:28:13 +02:00
Marko Viitanen
fa9a1db498
[inter] Fix mv precision in many places and add more mv_t usage and new vector2d_t rounding function
2021-11-19 16:20:49 +02:00
Marko Viitanen
5020f5f742
[inter] Fix incorrect mv scaling in unipred and change more mv types to mv_t
2021-11-18 11:49:08 +02:00
Marko Viitanen
21d7d2e4ed
[inter] Remove MV rounding from kvz_inter_get_merge_cand() and add it to where merge cand are used
...
* Should be adapted to AMVR later
* merge candidates match VTM at full precision
2021-11-18 11:09:26 +02:00
Marko Viitanen
bf06538f33
[inter] Change internal MV precision to "INTERNAL_MV_PREC" and add new type mv_t
2021-11-18 09:49:12 +02:00
Ari Lemmetti
5389842675
Add missing SIMD bipred functions for AMP blocks with size of 12 or larger
2021-11-17 21:33:13 +02:00
Marko Viitanen
c4a9d3dc83
[amvr] Add cmd line parameter for amvr and a field to the cu_array_t for setting it
...
* Still hardcoded too QPEL
2021-11-17 14:53:30 +02:00
Marko Viitanen
757772e8c4
[inter] Disable AMVR by default
...
* Can be used to reduce cost on signalling motion vectors later
2021-11-16 17:38:38 +02:00
Marko Viitanen
d4902cc840
[inter] Implement Adaptive Motion Vector Resolution bits, the resolution still in fullpel
2021-11-16 17:18:29 +02:00
Ari Lemmetti
e3aadd4272
Add missing things after rebase
2021-11-15 21:48:43 +02:00
Marko Viitanen
a91c9bd095
Fix sse41 ver_sad_arbitrary() reading over the boundary and disable ver_sad_w12(), since it always reads 16 bytes
...
* This fixes valgrind complaining about using uninitialised values
2021-11-15 12:42:29 +02:00
Marko Viitanen
9e0491ee79
[inter] Remove the deprecated B-priority list merge candidate selection
2021-11-10 15:56:54 +02:00
Marko Viitanen
f6011cf850
[inter] Fix inter_pred_idc signalling
2021-11-10 12:54:33 +02:00
Marko Viitanen
1656202dbc
[inter] Fix ref pic list signalling with GOP
2021-11-10 12:54:04 +02:00
Marko Viitanen
901bf561ff
[inter] Fix HMVP mv candidate derivation for more than one reference frame
2021-11-10 09:33:12 +02:00
Marko Viitanen
907fa6a36a
[inter] Fix how references are signalled for PU
2021-11-09 09:05:45 +02:00
Ari Lemmetti
146298a0df
New AVX2 block averaging *WIP* missing small chroma block and SMP/AMP
2021-11-08 23:01:13 +02:00
Ari Lemmetti
ef69c65c58
New bipred average functions
2021-11-08 23:01:12 +02:00
Ari Lemmetti
f47bd5d86f
Rename some bipred functions
2021-11-08 23:01:12 +02:00
Ari Lemmetti
b52a930bed
About working with generics
2021-11-08 23:01:12 +02:00
Ari Lemmetti
e7857cbb24
Remove avx2 blending
2021-11-08 22:45:45 +02:00