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
Joose Sainio
7ff904fd9d
[transform-skip] Bitstream generation for transform-skip
2021-04-30 10:54:45 +03:00
Joose Sainio
2ab005692d
Enable 4x4 intra CUs
2021-04-23 10:57:29 +03:00
Joose Sainio
1aaa95601c
Merge remote-tracking branch 'remotes/kvz_github/master' into Fix-monochrome
...
# Conflicts:
# .gitlab-ci.yml
# build/kvazaar_lib/kvazaar_lib.vcxproj.filters
# src/cfg.c
# src/encoder.h
# src/kvazaar.h
# src/rdo.c
2021-04-23 10:56:50 +03:00
Arttu Makinen
2e7c342645
Implemented DCT2, DST7, and DCT8 transforms, and search for selecting transform for MTS. Using MTS results mismatch for luma component.
2021-02-02 11:09:43 +02:00
Arttu Makinen
b9c3336f0e
MTS bitstream encoding added for intra. Work with depths 0-3.
2021-01-18 20:44:36 +02:00
Marko Viitanen
26f4f45c6d
Use correct pred_mode cabac models -> fixes inter cabac bits
2020-10-13 12:04:31 +03:00
Marko Viitanen
fa25621c77
Force certain intra modes off
2020-10-09 08:44:40 +03:00
siivonek
bc1206a4d3
Define qp_delta_min & max in global.h instead of calculating them locally.
2020-09-29 13:46:27 +02:00
Marko Viitanen
bddfb47a55
Merge remote-tracking branch 'remotes/kvazaar_github/master'
2020-09-25 11:49:11 +03:00
siivonek
0f3ef786b9
Modify delta QP range assert so it will work with any valid bit depth. Modify VAQ code so it will clip the QP to a proper range which is dependent on bit depth
2020-09-22 20:15:23 +02:00
siivonek
fe6f93a951
Fix delta QP range check assert. Add separate asserts based on bit depth.
2020-09-22 20:15:22 +02:00
Marko Viitanen
20b66c9949
Sync to VTM 8.2 and add separate height to last_sig coding
2020-04-29 08:52:38 +03:00
Marko Viitanen
86d76b19a4
Fix intra neighboring block selection and clean some unused code
2020-04-16 14:12:40 +03:00
Marko Viitanen
e737a878a6
Fix split flags and remove an extra terminating bit
2020-04-07 09:57:30 +03: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
Marko Viitanen
17a53230fd
Code cleanup, remove unused arrays and remove tabs
2019-11-18 09:01:23 +02:00
Marko Viitanen
a16efe6b52
Merge remote-tracking branch 'remotes/github_kvazaar/master'
...
# Conflicts:
# build/kvazaar_VS2013.sln
# build/kvazaar_VS2015.sln
# build/kvazaar_VS2017.sln
# build/kvazaar_cli/kvazaar_cli.vcxproj
# build/kvazaar_lib/kvazaar_lib.vcxproj
# build/kvazaar_tests/kvazaar_tests.vcxproj
# src/encode_coding_tree.c
# src/encode_coding_tree.h
# src/encoder_state-bitstream.c
# src/inter.c
# src/strategies/avx2/quant-avx2.c
2019-08-22 15:12:01 +03:00
Marko Viitanen
01ea762c1f
Fix coeff coding ad remove bdpcm flag -> CABAC bits match with VTM 6.0
2019-08-22 14:33:42 +03:00
Marko Viitanen
210af8adbe
Remove joint_cb_cr flag and fix split_flag context selection
2019-08-22 11:23:24 +03:00
Marko Viitanen
48b8898e53
Fix CBF context init and use
2019-08-22 10:44:47 +03:00
Marko Viitanen
db94ec1a84
Rename intra_mode_model -> intra_luma_mpm_flag_model and update the contexts
2019-08-19 15:17:25 +03:00
Marko Viitanen
cd6be15e10
Fix context init to match VTM6.0
2019-08-19 13:57:31 +03:00
Marko Viitanen
e644b03615
Fix headers to match VTM6.0rc1
2019-08-16 15:33:20 +03:00
Marko Viitanen
2e8a0d08f9
Fix mvp_idx_model initialization and use
2019-07-05 14:11:29 +03:00
Marko Viitanen
3fad4b0a98
Disable kvz_cabac_encode_aligned_bins_ep for now and add a ToDo message
2019-07-03 15:44:35 +03:00
Sami Ahovainio
3863064d90
Fixed bugs in split decision and coefficient coding.
2019-07-01 13:00:43 +03:00
Sami Ahovainio
db5c0230e5
Fixed coefficient sign hiding
2019-06-20 16:26:01 +03:00
Sami Ahovainio
b51254cafd
Fixed significant coefficient group context calculation
2019-06-20 15:47:13 +03:00
Sami Ahovainio
5e0bea962c
Fixed split context decision
2019-06-20 15:30:49 +03:00
Sami Ahovainio
3a9800d07d
Fixed coefficient coding. Fixed headers to match VTM commit e65075531471a68632bc9252d607655a0feeabc6
2019-06-20 14:43:03 +03:00
Sami Ahovainio
2c78aa0642
Fixes to coeff coding.
2019-06-13 12:01:29 +03:00
Sami Ahovainio
3564b4829e
Fixed split context decision. Modified intra mode initialization to match VTM version aa76fc5c04cf43390f43d63f9977bea8ee31997a.
2019-06-12 12:59:16 +03:00
Sami Ahovainio
a8a53e15b5
Fixed headers to match VTM commit aa76fc5c04cf43390f43d63f9977bea8ee31997a. Added multi_ref_line flag coding.
2019-06-07 13:37:45 +03:00
Sami Ahovainio
8d2581e58c
Fixed issue with kvz_go_rice_par_abs where passing a unsigned argument caused MIN function to return wrong value. Modified coefficient coding to match VTM 5.0. Some issues still remain.
2019-06-05 15:57:18 +03:00
Sami Ahovainio
4768ba0628
Minor fixes to header writing. Added contexts for multi_ref_line and BDPCM. Functions added for writing both in bitstream, but they are both disabled for now.
2019-05-29 13:00:19 +03:00
Sami Ahovainio
5b46fbd878
Added multi_ref_idx variable for intra coding (is 0 throughout the code for now). Modified prediction flag writing. Chroma pred flag remains unchanged (ToDo). Added bitstream debug printing on VERBOSE mode.
2019-05-21 12:28:05 +03:00
Sami Ahovainio
ed4e218702
Updated coefficient coding to match VTM 5.0
2019-05-13 15:30:43 +03:00
Marko Viitanen
30a8a7b97c
WIP fixing the last significant xy coding
2019-05-07 15:01:02 +03:00
Marko Viitanen
3bdc8ac8d3
Fix intra_chroma_pred_mode and cbf contexts
2019-03-26 09:10:09 +02:00
Marko Viitanen
d15f58517f
Changed intra coding to use 6 MPM, implemented merge sort and MPM selection
2019-03-20 15:20:31 +02:00
Marko Viitanen
80d6e4bf05
New split flag calculations
2019-03-20 09:07:58 +02:00
Eemeli Kallio
8f8e7bb53c
Added possibility to reduce number of maximum number of merge candidates.
2019-02-12 09:21:03 +02:00
Pauli Oikkonen
f186455619
Move encode_last_significant_xy out of strategy modules
...
It's the exact same in both AVX2 and generic, and does not seem to
be worth even trying to vectorize
2019-02-04 14:55:41 +02:00
Pauli Oikkonen
c3a6f3112a
Add generic strategy group for encode_coding_tree
2018-12-18 19:41:09 +02:00
Marko Viitanen
e015d7eb2b
Fix compiler warnings
2018-10-17 10:43:11 +03:00
Marko Viitanen
7c37f456f9
Fix implicit Qt split for p-frames
2018-09-26 12:00:18 +03:00
Marko Viitanen
a437d4c508
Fixed intra chroma mode bitstream writing (chroma search not used)
2018-09-13 15:05:00 +03:00
Marko Viitanen
82de0fbee7
Switch intra search to use the actual 67 modes
2018-09-13 09:43:45 +03:00
Marko Viitanen
4aad2fa383
Fix intra mode writing
2018-09-12 10:34:58 +03:00
Marko Viitanen
20c96366ed
fix kvz_context_get_sig_ctx_idx_abs() parameter for "type" -> decoding with VVC
2018-09-10 12:51:02 +03:00
Sami Ahovainio
ce84407c69
Fixed coeff_remain writing to use the correct rice_param instead of using 0 all the time.
2018-09-07 11:24:24 +03:00
Sami Ahovainio
78ea24bcf1
Fixed sig_coeff_flag writing condition.
2018-09-06 15:48:45 +03:00