Commit graph

653 commits

Author SHA1 Message Date
Joose Sainio 55a0e35892 [lfnst] Count lfsnt bits 2022-06-28 15:29:41 +03:00
Joose Sainio 3da4a313ce Fix rebase mistakes 2022-06-28 15:29:25 +03:00
Joose Sainio 882b00068b [intra] Perform intra chroma search before the mode is selected 2022-06-28 15:29:20 +03:00
Joose Sainio 4dba21ea54 [jccr] Remove select_jccr_mode function 2022-06-28 15:29:11 +03:00
Joose Sainio 658d639f8b [jccr] Chroma tr_search for inter 2022-06-28 15:29:05 +03:00
Joose Sainio 489876b9c7 [tr-skip] Add cmdline option for chroma transform skip 2022-06-28 15:28:47 +03:00
Joose Sainio 3afff7940c [jccr] update tr-skip context for jccr blocks 2022-06-28 15:28:40 +03:00
Joose Sainio c7a7a4719a [debug] remove debug prints 2022-06-28 15:28:29 +03:00
Joose Sainio 835b7fa736 [test] Add capability for testing the consistency of the cabac state 2022-06-28 15:28:06 +03:00
Joose Sainio fbd5911aa9 [tr-skip] Update tr_skip context for chroma & count bits 2022-06-28 15:27:30 +03:00
Joose Sainio f056178e80 [jccr] Chroma transform search kinda working 2022-06-28 15:27:21 +03:00
Joose Sainio 03246c031e [cabac] Fix trskip writing 2022-06-28 15:26:19 +03:00
Joose Sainio c11e30fdb4 [mts] get mts constraints for bit counting 2022-06-28 15:26:11 +03:00
Joose Sainio 81df3ef2e0 [mts] Reset mts constraints 2022-06-28 15:25:21 +03:00
Joose Sainio 2f5fd05f88 [intra] fix warnings 2022-06-28 15:25:09 +03:00
Joose Sainio 418c65cbf1 [intra] count mts and tr_skip bits 2022-06-28 15:25:01 +03:00
Joose Sainio 4c66561ebe [debug] Temporarily move split flag counting 2022-06-28 15:24:32 +03:00
Joose Sainio 8c939c1405 [intra] Fix chroma cbf counting for 4x4 2022-06-28 15:24:25 +03:00
Joose Sainio 09832c3c85 [intra] fix various things 2022-06-28 15:24:02 +03:00
Joose Sainio 1b3885d5be [intra] Chroma working 2022-06-28 15:23:36 +03:00
Joose Sainio 0575c9c592 [intra] Fix warnings 2022-06-28 15:23:25 +03:00
Joose Sainio 6d080b215c [intra] WIP: improve search 2022-06-28 15:22:20 +03:00
siivonek 2975b1fef0 [lfnst] WIP Implement lfnst search. Resolve some TODOs. 2022-06-28 15:20:40 +03:00
siivonek e11fd3154d [lfnst] Implement cabac write. 2022-06-28 15:20:36 +03:00
Marko Viitanen fb17bbc1ca [cleanup] Fix MSVC warnings about type conversion and signed/unsigned comparison 2022-06-18 13:43:16 +03:00
Joose Sainio 153afc6739 Merge branch 'improve-intra-search' 2022-05-30 13:35:46 +03:00
Marko Viitanen 4005b9da4b [cleanup] Remove mentions of SMP and AMP from the documentation and code 2022-04-29 15:10:43 +03:00
Marko Viitanen b5dce4c94e Rename all files containing "kvazaar" or "kvz" to "uvg266" and "uvg" 2022-04-28 14:26:05 +03:00
Marko Viitanen f14ea35ec9 Rename kvz_ to uvg_ 2022-04-28 14:18:09 +03:00
Joose Sainio 0381d7d779 Move 4x4 chroma tu info to bottom right cu when intra is split into 4x4 2022-04-21 09:46:54 +03:00
Joose Sainio b413aa5c43 Improve jccr search 2022-04-20 09:31:34 +03:00
Joose Sainio f4dc3ab43b Fix jccr and chroma mode search 2022-04-15 11:39:18 +03:00
Joose Sainio 88c01b6d32 Fix warnings/errors 2022-04-15 11:39:16 +03:00
Joose Sainio b093248ca7 Maybe working for regular intra search 2022-04-15 11:39:16 +03:00
Joose Sainio f7563076cb WIP 2022-04-15 11:39:15 +03:00
Joose Sainio e74ea38673 WIP: initial structs etc. 2022-04-15 11:39:15 +03:00
Joose Sainio 3532f7a938 Correct counting of jccr flag for inter pu rdo 2022-03-31 15:19:32 +03:00
Joose Sainio 6924497bae Fix jccr when inter is used 2022-03-31 14:59:22 +03:00
Joose Sainio df5bc0db4e Fix cclm when 64x64 is enabled 2022-03-30 10:10:02 +03:00
Joose Sainio 7ef25a23a9 Fix chroma cost calculation 2022-03-29 12:05:52 +03:00
Joose Sainio 5cd0554a7d fix correct chroma cost calculation 2022-03-28 14:08:35 +03:00
Joose Sainio 84e4fe6790 Fix broken things 2022-03-25 15:27:34 +02:00
Joose Sainio 0d7800c7f1 Use kvz_write_split_flag for all split flags during search 2022-03-25 13:56:03 +02:00
Joose Sainio 99ddc209fc Fix cclm when tiles are enabled 2022-03-25 10:20:44 +02:00
Joose Sainio b321015426 Use kvz_luma_mode_bits to count luma_mode_bits 2022-03-24 14:57:18 +02:00
Joose Sainio a88553b206 fix jccr and improve intra parameter passing 2022-03-24 11:11:33 +02:00
Joose Sainio 0be443d309 WIP: Merge remote-tracking branch 'remotes/kvz_github/master' into update-cabac-during-search 2022-03-21 11:03:46 +02:00
Joose Sainio e39fbb11a7 Disable bit calculations that always degrade quality 2022-03-18 08:28:32 +02:00
Joose Sainio 352d6750f5 Remove instrumentation code 2022-03-18 08:28:32 +02:00
Joose Sainio d1ba62aea9 Better inter bit_costs for rdo < 2 2022-03-18 08:28:31 +02:00
Joose Sainio d720305fea Don't double count some of the bits 2022-03-18 08:28:31 +02:00
Joose Sainio 49c8334dd7 count skip flag 2022-03-18 08:28:30 +02:00
Joose Sainio 6d73db5a2a Probably correct RD cost calculation for all inter modes 2022-03-18 08:28:29 +02:00
Joose Sainio 5afd3570f6 Update cu_qt_root_cbf_model 2022-03-18 08:28:29 +02:00
Joose Sainio 5ed1ffb5d4 WIP: pre Christmas 2022-03-18 08:28:28 +02:00
Joose Sainio f83e21735c Fix couple of mistakes 2022-03-18 08:28:28 +02:00
Joose Sainio 243e45f07e accurate bit cost calculation when using transform skip 2022-03-18 08:28:28 +02:00
Joose Sainio a038ccc19a add back bitcost for 4×4 intra PUs 2022-03-18 08:28:27 +02:00
Joose Sainio 64b2806cc8 Add couple of missing bits to the calculation and get intra neighbours from lcu rather than cu_array 2022-03-18 08:28:27 +02:00
Joose Sainio aea1133e6a Function for mock coding a CU and counting the bits 2022-03-18 08:27:22 +02:00
Joose Sainio 4b8d217f2d Add new macro for potentially updating cabac context when obtaining the bit cost 2022-03-18 08:19:57 +02:00
Joose Sainio d8648fe1de Preparation for accurately counting inter bits 2022-03-18 08:19:57 +02:00
Joose Sainio 1fb69d5e22 Correct tr depth bit calculation 2022-03-18 08:18:04 +02:00
Joose Sainio de3a76d874 Correctly calculate bits for transform split, however updating is done incorrectly, but cannot be fixed easily unfortunately 2022-03-18 08:18:04 +02:00
Joose Sainio dacc15f33b Count pred mode bit 2022-03-18 08:18:03 +02:00
Joose Sainio d2299adb1c Disable bit debug code when VERBOSE is not defined and count bits when combining the intra cus 2022-03-18 08:18:03 +02:00
Joose Sainio 9ed8d0a7d9 count all non-tr-depth related bits correctly 2022-03-18 08:17:41 +02:00
Joose Sainio 53264bc764 Update cabac context during search
Create a separate cabac that is only used during the search. It should hold
the state that the actual cabac end after encoding said CU. Only implemented
for intra so far.

TODO: 4×4 PUs probably still have some problems
2022-03-18 08:17:41 +02:00
Joose Sainio d5e4e831f4 Preliminary code for outputting bit costs during the search 2022-03-18 08:17:41 +02:00
Joose Sainio 8ff1c51835 Merge branch 'combine-intra-option' 2022-03-18 07:59:39 +02:00
Joose Sainio 85d1a54adc Add cli option for forcing inter 2022-03-17 14:48:08 +02:00
siivonek ac45a5299c [mip] Add define for number of mip modes. Fix mip cost calculation. If mip is enabled, the cost of writing of mip flag must always be included. Some code cleanup. 2022-02-10 02:31:13 +02:00
siivonek 769703ea71 [mip] Fix mpm mode selection. When neighboring CU uses MIP, signaled intra mode must be planar. Fix chroma reconstruction when MIP is enabled. Only allow MIP to be used if chroma scheme is 444. Otherwise use planar mode. 2022-02-09 12:55:18 +02:00
siivonek b8a8bce55a [mip] Fix MIP bit cost calculation. 2022-02-09 12:55:17 +02:00
siivonek a4366dbcc5 [mip] Fix error which caused asan CI test to fail. Was caused by an uninitialized intra CU mip value. 2022-02-09 12:55:16 +02:00
siivonek 6b33957978 [mip] Implement MIP bit cost calculation. 2022-02-09 12:55:16 +02:00
siivonek d5e2bbd824 [mip] Fix things according to comments. Fix asserts. Remove MIP from chroma recon and search calls. WIP mip mode cost calculation. 2022-02-09 12:55:16 +02:00
siivonek 59a86f339e [mip] Implement MIP search. 2022-02-09 12:55:16 +02:00
Jaakko Laitinen 25a8a40de0 Merge branch 'deblock_fix' into 'master'
[Deblock] Fix deblock when using inter

See merge request cs/ultravideo/vvc/uvg266!8
2021-12-31 14:41:06 +02:00
Jaakko Laitinen 9e95b16368 [Deblock] Fix chroma deblocking issues when inter is enabled
Added cbf_copy() calls for chroma components in the lcu_fill_cbf() function since deblocking now uses that information for chroma as well.
2021-12-10 15:30:47 +02:00
siivonek 236265a1f4 [mrl] Implement MRL bitcost calculation. 2021-12-09 16:43:25 +02:00
Ari Lemmetti 9905cd42d6 Rename "indx" to "keys". There are too many "indices" already. 2021-12-08 15:34:01 +02:00
Ari Lemmetti 8406942d06 Improve the new data structure a bit. Use also for merge candidates. 2021-12-08 15:34:01 +02:00
siivonek 3a81a389c3 [mrl] Fix issues transmitting multi ref idx during search. Change multi ref idx type to uint. 2021-12-06 19:23:57 +02:00
Ari Lemmetti 90c0a708a7 Add new structs for storing statistics during the search. Use in AMVP search. 2021-12-02 20:00:19 +02:00
Ari Lemmetti ec2f4e0bac Use double for RD costs in most places 2021-12-02 20:00:15 +02:00
Joose Sainio f1f0033bf5 Add a cli option to control whether intra cus are tried to combine on the lower depth when search for said depth is disabled 2021-12-02 10:52:29 +02:00
siivonek a0cfb625be [mrl] Fix extra ref line length. Fix error where un-initialized ref line index was passed. 2021-11-29 17:11:40 +02:00
siivonek 65cf515070 Fix MRL to work when inter coding is enabled. 2021-11-29 17:11:40 +02:00
siivonek a5dc2a3ce1 Disable MRL when copying best mode from top left CU. 2021-11-29 17:02:26 +02:00
Marko Viitanen e662a2747b Merge branch 'tile_fixes' 2021-11-26 14:30:05 +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 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 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
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 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 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 6944437e98 Disable top-right CU copy to LCU when WPP is used, since it's not available 2021-11-08 09:43:53 +02:00