Commit graph

249 commits

Author SHA1 Message Date
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 8c939c1405 [intra] Fix chroma cbf counting for 4x4 2022-06-28 15:24:25 +03:00
Joose Sainio 2feb3daaaf [intra] Count chroma mode bits 2022-06-28 15:24:18 +03:00
Joose Sainio 80ab347d93 [intra] Luma working 2022-06-28 15:22:47 +03:00
Joose Sainio 23fda23322 [intra] Count fractional bits with get_coeff_cabac_cost 2022-06-28 15:22:33 +03:00
Joose Sainio 6d080b215c [intra] WIP: improve search 2022-06-28 15:22:20 +03:00
Joose Sainio 480a907c07 [lfnst] change kvz_ to uvg_ 2022-06-28 15:20:44 +03:00
siivonek 4d3688cf17 [lfnst] Fix error in luma tr_skip check. All cbf was checked when only luma cbf needed to be checked. 2022-06-28 15:20:43 +03:00
siivonek b836c6f529 [lfnst] Fix error in is_lfnst_allowed. Error caused cabac to fail on depth 4 chroma blocks. 2022-06-28 15:20:43 +03:00
siivonek cf4343989f [lfnst] Add early termination to mts/lfnst search if MTS_SKIP is selected. Resolve TODOs. 2022-06-28 15:20:42 +03:00
siivonek e056e87ca0 [lfnst] Fix help text missing line break. Fix luma transform skip check. 2022-06-28 15:20:42 +03:00
siivonek 7551952eeb [lfnst] Fix separate tree type checks. Fix lfnst search. Lfnst is now done in outer loop. 2022-06-28 15:20:42 +03:00
siivonek 2975b1fef0 [lfnst] WIP Implement lfnst search. Resolve some TODOs. 2022-06-28 15:20:40 +03:00
siivonek de18eef956 [lfnst] Chroma transform data is no longer stored in top left block. Remove -4x-4 coordinate offset. 2022-06-28 15:20:40 +03:00
siivonek 76947c4c41 [lfnst] Fix rebase errors. 2022-06-28 15:20:40 +03:00
siivonek b9c71b7f01 [lfnst] Fix cabac write issues. Lfnst constraints needed to be reset after encode_transform_coeff call. 2022-06-28 15:20:39 +03:00
siivonek 7928149d05 [lfnst] Fix CI errors. Had to remove const modifier from function call. 2022-06-28 15:20:39 +03:00
siivonek c1190e47d6 [lfnst] Fix cabac write issues. Remove is_luma from encode coeff function call, that information is already passed with type. Change parameter name 'type' -> 'color' to better reflect its purpose. 2022-06-28 15:20:38 +03:00
siivonek e3d92a5296 [lfnst] Add separate function to check if lfnst can be used with ISP. 2022-06-28 15:20:38 +03:00
siivonek ee9258b2d9 [lfnst] WIP Fix errors in lfnst cabac write. 2022-06-28 15:20:37 +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
Joose Sainio d5b6d2771c [deltaqp] Fix delta qp writing for 4x4 for CUs 2022-05-05 14:31:22 +03:00
Marko Viitanen 3a0c5b78a3 [deltaqp] Fix delta qp headers and cabac bits, add vaq and bitrate tests 2022-05-04 11:18:34 +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 b093248ca7 Maybe working for regular intra search 2022-04-15 11:39:16 +03:00
Joose Sainio debe5924a9 Fix 2022-04-15 11:38:31 +03:00
Joose Sainio 03fd8f1545 Don't write jccr flag for inter CUs when it cannot be enabled 2022-03-31 11:45:49 +03:00
Joose Sainio f5753394a0 Update intra chroma mode contexts 2022-03-31 11:30:27 +03: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 e1fcd8b2e4 Add missing bits to kvz_mock_encode_coding_unit 2022-03-25 13:27:34 +02:00
Joose Sainio eb8663fbd1 Move split flag coding to its own function 2022-03-25 13:09:37 +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 7aa361696d Facilitate bit counting in encode_intra_luma_coding_unit 2022-03-24 13:34:26 +02:00
Joose Sainio b2a94d4276 Move transform coding and chroma cu coding out of encode_intra_coding_unit 2022-03-24 12:09:14 +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 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 5ed1ffb5d4 WIP: pre Christmas 2022-03-18 08:28:28 +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 d8648fe1de Preparation for accurately counting inter bits 2022-03-18 08:19:57 +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 d5e4e831f4 Preliminary code for outputting bit costs during the search 2022-03-18 08:17:41 +02:00
siivonek c9cbadad8a Merge branch intra_mip. 2022-03-17 12:04:59 +02:00
Joose Sainio f1a3aa60dd Don't write prediction mode for 4x4 intra cus 2022-03-14 10:34:06 +02:00
siivonek df5cbbe82f [mip] Fix issue with invalid MIP modes written into cabac. Fix Mip mode cost estimation. Implement function to derive mip flag context id. Fix some asserts. Replace floor log 2 implementation with existing kvz math function. 2022-02-09 12:55:17 +02:00
siivonek d2c24c9a0c [mip] Fix error in deriving MIP flag context id. 2022-02-09 12:55:17 +02:00
siivonek 55e4091030 [mip] Fix MIP cabac write. 2022-02-09 12:55:16 +02:00
siivonek 0cf89e9516 [mip] Fix CI errors. 2022-02-09 12:55:16 +02:00
siivonek 2daa8ad537 [mip] Implement cabac write. 2022-02-09 12:55:16 +02:00
Ari Lemmetti 917d26f1bf Unify delta QP / ROI map functionality. 2022-02-08 20:15:27 +02:00
Marko Viitanen 2cdeff75cb [debug] Add debug.c/.h to visual studio project and some debugging options 2021-12-14 11:15:35 +02:00
siivonek dea3ca12aa Merge branch 'intra_mrl' 2021-12-08 15:51:50 +02:00
siivonek 64e6eb1f28 [mrl] Clean old commented mrl code. 2021-12-08 15:21:43 +02:00
Marko Viitanen 04cb32be91 [mrl] Use kvz_intra_build_reference_inner() with MRL since WPP fixes have been made there 2021-12-08 11:39:20 +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
Marko Viitanen f501465e8d [debug] Add yuview debug output for transform skip 2021-12-03 19:38:50 +02:00
Marko Viitanen 545fc305e7 [cleanup] Remove unused variables in trskip coding functions 2021-12-03 17:23:19 +02:00
Marko Viitanen 46af1536ee [trskip] Signal sig coeff group correctly for the transform skip when blocksize > 4x4 2021-12-03 17:17:06 +02:00
Marko Viitanen fe7aff90b7 [mts] Signal MTS with inter blocks 2021-12-03 11:00:07 +02:00
Marko Viitanen 3a447e09c2 [trskip] Allow changing the max tr-skip size 2021-12-02 22:56:07 +02:00
Marko Viitanen 1c7c14d544 [debug] Add MV debugging tool enabled with KVZ_DEBUG_PRINT_MV_INFO 2021-12-01 15:51:25 +02:00
Marko Viitanen 09d2881ca9 [debug] Handle tiles with the yuview data 2021-12-01 15:36:29 +02:00
Marko Viitanen 6a89817adb [debug] Arrange the yuview CSV data by POC and type, add data for CU type 2021-12-01 14:43:34 +02:00
Marko Viitanen 4f42c9c22c [debug] Fix problems in YUView CSV format 2021-12-01 08:55:21 +02:00
Marko Viitanen 5cbc655954 [debug] Add debug.c/.h and initial version of YUView CSV format printers 2021-11-30 22:11:20 +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
Marko Viitanen 3fda2dd6c8 [cleanup] Fix some warnings 2021-11-29 16:31:09 +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 754607dae4 [cclm] bitstream writing + cabac 2021-11-26 08:11:53 +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 bf06538f33 [inter] Change internal MV precision to "INTERNAL_MV_PREC" and add new type mv_t 2021-11-18 09:49:12 +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
Marko Viitanen f6011cf850 [inter] Fix inter_pred_idc signalling 2021-11-10 12:54:33 +02:00
Marko Viitanen 907fa6a36a [inter] Fix how references are signalled for PU 2021-11-09 09:05:45 +02:00
Marko Viitanen 08766c0bb3 [inter] Fix max-merge usage 2021-10-25 11:25:23 +03:00
Marko Viitanen 57883369ca Change all the license texts in source headers and LICENSE file to 3-clause BSD, closes #302
* All now have the same exact text string
2021-10-13 15:22:46 +03:00
Marko Viitanen f68ba68fb2 Push HMVP item also when coding a skipped cu 2021-10-08 16:29:15 +03:00
Marko Viitanen 76a7294e35 Implement HMVP look-up-table functions 2021-10-08 16:29:14 +03:00
Marko Viitanen cb9f9381c3 [inter] Fix inter reconstruction, correct function was in wrong branch 2021-10-08 14:48:49 +03:00
Joose Sainio 3a73abd264 [jccr] disable jccr for blocks when tr-depth != depth, i.e. 64×64 2021-09-06 11:28:32 +03:00
Joose Sainio 072b84711a [jccr] fix 64×64 CUs 2021-09-06 11:28:20 +03:00
Joose Sainio 29d86aea84 [jccr] cmdline option 2021-09-06 11:28:08 +03:00
Joose Sainio 042b5078d8 [jccr] WIP initial implementation
Add somekind of search for joint chroma residual coding.
Bitstream is currently correct but prediction is incorrect because the jccr
is actually not used in the search.

Hard coded to be enabled
2021-09-06 11:28:08 +03:00
Marko Viitanen 5604b6f946 [cleanup] remove all crypto related stuff, fix warnings, move estimate.m to tools/ 2021-07-27 09:27:51 +03:00
Marko Viitanen 9e70707fba [alf] Add new wf_recon_jobs and change search/bitstream writing to use local coeff instead of state->coeff 2021-07-23 10:40:19 +03:00
Joose Sainio cfffd7166c Use correct context for calculating coeff costs for transform skip 2021-06-07 13:06:03 +03:00
Joose Sainio 2df94f6a17 Fix rd=3 2021-05-27 08:39:41 +03:00
Joose Sainio a998f3ed74 [transform-skip] Convert the HEVC transfrom skip to VVC
For some reason transform skip uses QP MAX(52, QP) and the coeffs are
no longer shifted
2021-04-30 10:55:23 +03:00