siivonek
03b22e561e
[isp] Add ISP command line option.
2023-08-14 12:15:36 +03:00
Marko Viitanen
1a1fea1a19
Merge branch 'implement_ibc'
2023-08-09 09:34:29 +03:00
Marko Viitanen
18b4a8be79
[ibc] Include the chroma in crc
2023-07-27 10:58:20 +03:00
Marko Viitanen
20875a9819
[ibc] Calculate hashes every 4 pixels and change the IBC costs a bit
2023-07-27 10:29:55 +03:00
Marko Viitanen
0fefd3f621
[ibc] Add hash based starting point finder for reqular inter search *experimental*
2023-07-24 22:55:52 +03:00
Marko Viitanen
6f4d538f4f
[ibc] Clean up the ibc search, utilize hash based starting points if ibc=2
2023-07-24 22:07:22 +03:00
Marko Viitanen
6fe629e666
[ibc] A bit of cleanup and skip IBC search if cost is already less than 500
2023-07-21 20:40:00 +03:00
Marko Viitanen
3cef3c0119
Change the hardcoded general_level_idc from 5.2 to 6.3
2023-07-21 20:19:43 +03:00
Marko Viitanen
95dc4aa0cb
[ibc] Fix the IBC buffer limitation, 256x64 pixels allowed
2023-07-21 20:15:24 +03:00
Marko Viitanen
8ff184a6b3
[ibc] Fill the IBC hashmap at the start of LCU search and use reverse map for "pos to hash"
2023-07-21 20:14:23 +03:00
Marko Viitanen
457d650f49
[ibc] Fix for CRC calculations
...
- Input for the 64bit crc intrinsic was 32bit
2023-07-19 09:57:24 +03:00
Marko Viitanen
15fb6f8183
[ibc] Add first version of the IBC hash search
2023-06-29 21:57:06 +03:00
Marko Viitanen
8cec02280f
[ibc] Use IBC hashmap in LCU row basis
2023-06-28 23:06:04 +03:00
Marko Viitanen
76d66591c5
[ibc] Implement CRC for 8x8 block and generate a full hashmap at the frame load
2023-06-26 21:24:10 +03:00
Marko Viitanen
4b1f5ca7e2
[ibc] Add the hashmap to the frame and fix some small issues with hashmap and crc32c
...
- crc32c_4x4 strategy was not working, made some changes to the initialization
2023-06-22 21:44:49 +03:00
Marko Viitanen
30321e6dd4
[ibc] Fix uvg_hashmap_hash definition
2023-06-22 14:45:05 +03:00
Marko Viitanen
a32a318d18
[ibc] Add CRC32C functions, with SSE 4.2 optimized CRC calculations
2023-06-22 14:39:56 +03:00
Marko Viitanen
7252befc17
[ibc] Add a hashmap implementation for IBC hash search
2023-06-22 14:39:56 +03:00
Marko Viitanen
68382f9e25
[ibc] Handle 4x4 block cases
2023-06-22 14:39:55 +03:00
Marko Viitanen
31fbf453c1
[ibc] Fix IBCFlag writing with I-frames and clean up some code
2023-06-22 14:39:55 +03:00
Marko Viitanen
8aded6406b
[ibc] Fix issue in search
2023-05-08 12:26:06 +03:00
Marko Viitanen
34c7c432f9
[ibc] Fix deblocking for the IBC blocks
2023-05-08 11:58:40 +03:00
Joose Sainio
e636db489f
[cfg] Parameterize intra rough search granularity
2022-09-28 08:49:38 +03:00
Joose Sainio
ed6a0528fe
Further make things faster
2022-08-30 15:17:05 +03:00
Joose Sainio
b0b2b0e536
Try making ultrafast all intra a bit faster
2022-08-29 14:11:08 +03:00
Marko Viitanen
6de2e2d581
[ibc] Fix some git merge issues and IBC merge candidate selection
2022-08-03 10:46:02 +03:00
Marko Viitanen
6a0e2a062d
[ibc] Implement a proper search for IBC based on Inter search
2022-07-29 11:53:11 +03:00
Marko Viitanen
65c017c2f2
[ibc] Add check for above block in IBC search
2022-07-29 11:53:11 +03:00
Marko Viitanen
09e62a68fe
[ibc] Fix merge candidate selection bug and IBC HMVP size reset at the start of the lcu row
2022-07-29 11:53:10 +03:00
Marko Viitanen
d288cc46e9
[ibc] Fix coding of IBC in P and B slices, enable in search
2022-07-29 11:53:10 +03:00
Marko Viitanen
48584eead9
[ibc] Reset the jccr flags to fix a bug with IBC
2022-07-29 11:53:10 +03:00
Marko Viitanen
7ce01b4826
[ibc] Tune search costs a bit and revert debug vector scaling
2022-07-29 11:53:09 +03:00
Marko Viitanen
0fdf96fab2
[ibc] Change internal MV storage to INTERNAL_MV_PREC and code it as full-pel
2022-07-29 11:53:09 +03:00
Marko Viitanen
cc4c757695
[ibc] Fix bugs on IBC reconstruction and add a simple search for I-frames
2022-07-29 11:53:08 +03:00
Marko Viitanen
d9164f3cfe
[ibc] Simplify the IBC merge candidate and mv cand selection
2022-07-29 11:53:08 +03:00
Marko Viitanen
a46a4531a3
[ibc] Add HMVP for IBC and correct AMVP selection
2022-07-29 11:52:17 +03:00
Marko Viitanen
dbc2006ba9
[ibc] Implement IBC reconstruction function when blocks are completely in the ibc buffer
2022-07-29 11:52:16 +03:00
Marko Viitanen
b49d32af21
[ibc] Add IBC buffers
2022-07-29 11:52:15 +03:00
Marko Viitanen
6ec4c37b47
[ibc] Add IBC Flag context and code the bits, disable by default for now
2022-07-29 11:49:49 +03:00
Marko Viitanen
20d0a9b65e
[ibc] Add --ibc
parameter and config values for Intra Block Copy
2022-07-29 11:49:49 +03:00
Marko Viitanen
cd2d4066d5
Fix scaled MV clipping and remove some unused variables
2022-07-28 13:59:11 +03:00
Marko Viitanen
3dd738ebb5
Fix mv_t rounding problems in some functions
2022-07-27 13:02:37 +03:00
Marko Viitanen
5ce1035291
[debug] Fix Motion Vector debug code not to overflow on videos not divisible by LCU_WIDTH
2022-07-27 12:48:39 +03:00
Marko Viitanen
b7b7c22e44
Change mv_t to int32_t because of possible overflow in large videos
2022-07-27 12:48:39 +03:00
Joose Sainio
ea32ef33ac
[lfnst] handle transform skip correctly during search
2022-07-08 10:57:26 +03:00
Joose Sainio
03fb6ce92e
[lfnst] Fix lfnst+tr_skip for dual tree
2022-07-08 10:57:26 +03:00
Joose Sainio
450cd00290
[mts] Fix cost calculation
2022-07-08 10:56:35 +03:00
Joose Sainio
f9212b4e44
[mts] Don't do tr-skip when tr-skip is disabled
2022-07-06 15:15:28 +03:00
Joose Sainio
dc7c8eeb41
[tr-skip] fix uvg_encode_ts_residual
2022-07-06 10:51:01 +03:00
Joose Sainio
427d611a00
[intra] Perform chroma search for rd2
2022-07-05 12:29:27 +03:00
Joose Sainio
e2c34e7c25
[lfnst] Fix lfnst for --rd 2
2022-07-05 12:19:21 +03:00
Joose Sainio
02aa36f1a2
[tests] Fix final issue with avx2 satd and update test results
2022-07-05 10:28:59 +03:00
Joose Sainio
42adfb52a7
[satd] Satd scaling on avx2 implementations and re-enable satd tests
2022-07-05 09:34:59 +03:00
Joose Sainio
1f6a62e70e
[fix-up] Force lfnst off when trying the mode from below depth block
2022-07-04 13:45:16 +03:00
Joose Sainio
3de4b99aec
[jccr] Fix cost calculation
2022-07-04 13:41:14 +03:00
Joose Sainio
3a6414c31d
[dual-tree] Fix deblock
2022-06-30 14:21:03 +03:00
Joose Sainio
5fefea025f
[lfnst] get constarints for jccr mode
2022-06-29 16:35:55 +03:00
Joose Sainio
b35a75b2eb
[lfnst] Fix lfnst with rdoq
2022-06-29 16:25:25 +03:00
Joose Sainio
6ef532775b
[intra] Fix various issues with cclm, mip, dual-tree, and lfnst
2022-06-29 15:09:34 +03:00
Joose Sainio
06d277bc78
[doc] update manpage and readme
2022-06-28 16:25:25 +03:00
Joose Sainio
68243e284f
[cleanup] fix warnings
2022-06-28 16:02:22 +03:00
Joose Sainio
b4ab9debf1
[lfnst] fix lfnst with cclm
2022-06-28 15:32:34 +03:00
Joose Sainio
e25ea52f6f
[lfnst] Fix mistakes
2022-06-28 15:32:33 +03:00
Joose Sainio
2fbbae834b
[cclm] fix cclm for 4x4
2022-06-28 15:32:33 +03:00
Joose Sainio
b8b603feb7
[lfnst] fix compile
2022-06-28 15:32:33 +03:00
Joose Sainio
a0dd412811
[cclm] fix cclm bound calculation
2022-06-28 15:32:32 +03:00
Joose Sainio
75e500da10
[lfnst] LFNST working with dual tree
2022-06-28 15:32:32 +03:00
Joose Sainio
faba18fe17
[dual-tree] only perform lfnst search when lfnst is enabled
2022-06-28 15:32:32 +03:00
Joose Sainio
d16d6e3dd8
[dual-tree] [lfnst] allow counting lfnst bits for chroma in dual-tree
2022-06-28 15:32:31 +03:00
Joose Sainio
37590add20
[lfnst] [dual-tree] LFNST should work with dual tree
2022-06-28 15:32:31 +03:00
Joose Sainio
6c7dc9004c
[dual-tree] Fix split context state updating
2022-06-28 15:32:31 +03:00
Joose Sainio
b0d616b03c
[dual-tree][tests] Fix some issues and enable cabac state test to test for dual tree
2022-06-28 15:32:30 +03:00
Joose Sainio
345c50ecee
[dual-tree] rename kvz_ to uvg_
2022-06-28 15:32:30 +03:00
Joose Sainio
3f12ee58b0
[dual-tree] fix --pu-depth-intra 4-4 for dual tree
2022-06-28 15:32:30 +03:00
Joose Sainio
b8215baa30
[dual-tree] Fix CCLM+dual tree
2022-06-28 15:32:30 +03:00
Joose Sainio
cf144e2724
[dual-tree] Works for all depths with basic tools
2022-06-28 15:32:29 +03:00
Joose Sainio
1c313e9c19
[dual-tree] works for depths 1 and 2
2022-06-28 15:32:29 +03:00
Joose Sainio
15cb06ded1
[dual-tree] Fix at least for implicit splits
2022-06-28 15:32:29 +03:00
Joose Sainio
ed8496e57e
[dual-tree] Matches except for cutoff bottom CTUs for forced depth=1
2022-06-28 15:32:28 +03:00
Joose Sainio
2017cb122a
[dual-tree] Actually does whole frame
2022-06-28 15:32:28 +03:00
Joose Sainio
abd00d04a1
[dual-tree] Still not working but bitstream valid
2022-06-28 15:32:28 +03:00
Joose Sainio
0adb0846d2
[dual-tree] Bitstream valid, hash missmatches
2022-06-28 15:32:28 +03:00
Joose Sainio
be2ef18fea
[dual-tree] Not working
2022-06-28 15:32:27 +03:00
Joose Sainio
8fba042e02
[dual-tree]preliminary preparation for dual tree
2022-06-28 15:32:27 +03:00
Joose Sainio
74c931a7c7
[lfnst] cost on chroma when necessary and fixes
2022-06-28 15:32:27 +03:00
Joose Sainio
20010cf759
[lfnst] Fix hash mismatches for depth 4 chroma
2022-06-28 15:32:10 +03:00
Joose Sainio
ed602d1c07
[lfnst] Cabac state matches for all sizes but hash mismatches
2022-06-28 15:31:55 +03:00
Joose Sainio
7a7bf045e6
[lfnst] 16x16
2022-06-28 15:31:42 +03:00
Joose Sainio
d7f7a2d99b
[lfnst] working for 32x32
2022-06-28 15:31:42 +03:00
Joose Sainio
b75ce57fce
[intra] Fix chroma search for rd=2
2022-06-28 15:30:56 +03:00
Joose Sainio
6413854f3d
[intra] fix intra recon
2022-06-28 15:30:47 +03:00
Joose Sainio
a6d79407ab
[lfnst] various small fixes
2022-06-28 15:30:28 +03:00
Joose Sainio
cfc3fa9f09
[lfnst] Include lfnst in chroma search
2022-06-28 15:29:56 +03:00
Joose Sainio
36137e2bee
[lfnst] WIP
2022-06-28 15:29:50 +03:00
Joose Sainio
55a0e35892
[lfnst] Count lfsnt bits
2022-06-28 15:29:41 +03:00
Joose Sainio
66fef4934e
Fix another rebase mistake
2022-06-28 15:29:34 +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
85bfeea602
[jccr] Move chroma transform search related functions to transform.c
2022-06-28 15:28:53 +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
02931e8c24
[intra] Only use the old search if tr_depth != depth
2022-06-28 15:27:56 +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
27b730c2e9
[jccr] WIP chroma transform search
2022-06-28 15:26:47 +03:00
Joose Sainio
c309b81532
[intra] Fix chroma bit counting
2022-06-28 15:26:41 +03:00
Joose Sainio
aa2f412c20
[rd] Don't calculate cost for non-basic transforms that do not have coeffs
2022-06-28 15:26:36 +03:00
Joose Sainio
079d1e9aaf
[debug] Disable this for now
2022-06-28 15:26:25 +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
675eb5b508
[debug] remove debug prints
2022-06-28 15:25:15 +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
804bf3afcb
[intra] Limit rough search
2022-06-28 15:24:39 +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
2feb3daaaf
[intra] Count chroma mode bits
2022-06-28 15:24:18 +03:00
Joose Sainio
dfbe9dad87
[intra] intra dist = MIN(satd_dist, sad_dist*2)
2022-06-28 15:24:12 +03:00
Joose Sainio
09832c3c85
[intra] fix various things
2022-06-28 15:24:02 +03:00
Joose Sainio
6fcec1fdd3
[mrl] [mip] initial rd improvement
2022-06-28 15:23:56 +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
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
c16f42e9df
[satd] DC scaling
2022-06-28 15:20:56 +03:00
Joose Sainio
480a907c07
[lfnst] change kvz_ to uvg_
2022-06-28 15:20:44 +03:00
siivonek
7abbf14d50
[lfnst] Fix lfnst constraint calculation check. Constraints will now be calculated regardless of tr_idx value.
2022-06-28 15:20:44 +03:00
siivonek
d15fb473a2
[lfnst] Fix error in mts skip check. Skip value was derived from tr_skip instead of correct tr_idx.
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
9171e03a53
[lfnst] Add cu intra check to lfnst calls.
2022-06-28 15:20:43 +03:00
siivonek
4fee153318
[lfnst] Fix assert. No need for >= 0 check for unsigned integer.
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
896bc093d3
[lfnst] Remove unused stuff from lfnst constraint check. Use temp values for storing lfnst constraints during search instead of updating values inside pred cu.
2022-06-28 15:20:41 +03:00
siivonek
7b6b6586c6
[lfnst] Implement lfnst constraint check during search.
2022-06-28 15:20:41 +03:00
siivonek
64c5cfb127
[lfnst] Fix error in scan table selection.
2022-06-28 15:20:41 +03:00
siivonek
1c5f7f9dfc
[lfnst] Fix errors in quantization code. Lfnst was called in wrong place. Fix error in lfnst algorithm, 16 bit integer overflow issue.
2022-06-28 15:20:41 +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
ca2890d7e9
[lfnst] Fix error in inv lfnst call in quant generic. Add lfnst calls to quant avx2. Improve lfnst flag sps write.
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
acfc28d7ce
[lfnst] Fix CI errors. Lfnst tables didn't have kvz prefix.
2022-06-28 15:20:37 +03:00
siivonek
ee9258b2d9
[lfnst] WIP Fix errors in lfnst cabac write.
2022-06-28 15:20:37 +03:00
siivonek
560be8c5b4
[lfnst] Fix writing sps lfnst flag.
2022-06-28 15:20:37 +03:00
siivonek
835f576eef
[lfnst] Fix error in writing lfnst constraints. Added check to test if CU data exists before referencing it.
2022-06-28 15:20:37 +03:00
siivonek
e11fd3154d
[lfnst] Implement cabac write.
2022-06-28 15:20:36 +03:00
siivonek
929828392a
[lfnst] Implement inverse lfnst.
2022-06-28 15:20:36 +03:00
siivonek
fb289ce875
[lfnst] Change lfnst context name. It now follows the naming convention of other similar contexts.
2022-06-28 15:20:36 +03:00
siivonek
026beb3154
[lfnst] Add lfnst coef scan table.
2022-06-28 15:20:35 +03:00
siivonek
d9f556e219
[lfnst] Implement forward LFNST functions.
2022-06-28 15:20:35 +03:00
siivonek
c039f3ba80
[lfnst] Add lfnst transform tables.
2022-06-28 15:20:35 +03:00
siivonek
213fe13a27
[lfnst] Add commandline option for lfnst. Implement cabac lfnst flag init and sps flag.
2022-06-28 15:20:35 +03:00
Marko Viitanen
4880b47a4e
[cleanup] Update README AppVeyor badge url and remove mentions of Kvazaar
2022-06-18 13:49:09 +03:00
Marko Viitanen
fb17bbc1ca
[cleanup] Fix MSVC warnings about type conversion and signed/unsigned comparison
2022-06-18 13:43:16 +03:00
Jovasa
f269ba436b
Merge pull request #6 from skal65535/fix
...
Fix several compile warnings
2022-06-16 10:59:00 +03:00
Marko Viitanen
429e945496
Round width and height to next 8 pixels instead of 4
...
* New macro CONF_WINDOW_PAD_IN_PIXELS
2022-06-16 09:45:35 +03:00
Marko Viitanen
c71de0e9f9
Fix conformance window, signal only in SPS
2022-06-14 14:18:14 +03:00
Joose Sainio
c8314d3ec3
update man page
2022-06-14 10:38:42 +03:00
LigH
eab9a94455
Missing backslash escape in line break
2022-06-13 10:29:20 +02:00
Joose Sainio
7a22b94f0e
[avmr] fix mvp_candidate rounding
2022-06-13 09:29:50 +03:00
Pascal Massimino
055b813bb3
Fix several compile errors:
...
src/search_inter.c:1210: implicit conversion from 'int' to 'int16_t'
was truncating constants.
src/intra.c:511: const qualifier discarded
2022-06-09 17:49:59 +02:00
Marko Viitanen
5ea913287b
[y4m] Fix y4m header parsing problems with piped input by removing ungetc()
2022-06-03 14:02:03 +03:00
Marko Viitanen
700f526623
Add timing hrd parameters to be able to extract original framerate in decoder
2022-06-02 21:37:42 +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
Joose Sainio
8223112cc1
Revert "[intra] Limit intra depth to 3 (8x8) for now"
...
This reverts commit c8539a3701
.
2022-05-05 14:28:07 +03:00
Joose Sainio
feb8a4d2e3
[cli] To print version info to stdout when everything is ok.
2022-05-05 13:28:50 +03:00
Marko Viitanen
c8539a3701
[intra] Limit intra depth to 3 (8x8) for now
2022-05-04 20:00:32 +03:00
Joose Sainio
b4a3d54170
[rate_control] fix gop 0 + OBA
2022-05-04 12:55:28 +03:00
Joose Sainio
900ce314ef
[deltaqp] Fix uvg_get_cu_ref_qp for first cu of row
2022-05-04 12:41:49 +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
20ecb128cd
[cleanup] Print uvg266 version every time the CLI is launched, fix manpage and README gen
2022-05-03 16:35:25 +03:00
Marko Viitanen
a4bc6bb7b1
[cleanup] Remove deprecated -w and -h from documentation
2022-05-02 22:11:53 +03:00
Marko Viitanen
dc83d15ea7
[build] Add better version info to the binary for debugging purposes
2022-05-02 20:51:24 +03:00
Marko Viitanen
a5eb7d1496
[build] Fix conditions for struct packing macro, detect MSVC instead of everything else
...
* Fixes building on apple systems
2022-04-29 18:57:26 +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
7557067b41
[build] Fix building for other than x86 target
2022-04-29 14:32:24 +03:00
Marko Viitanen
a8c458469c
Update README and other documents, rename github workflow from kvazaar.yml to uvg266.yml
2022-04-29 13:28:10 +03:00
Marko Viitanen
61642deb82
[cleanup] Change the interface function names and some other kvazaar mentions to uvg266
2022-04-28 22:01:02 +03:00
Marko Viitanen
45fcac612a
[cleanup] Change all tabs to spaces in the ml classifier code
2022-04-28 21:14:25 +03:00
Marko Viitanen
2016f30dc0
[build] Add install configuration to CMakeLists.txt
2022-04-28 16:15:09 +03:00
Marko Viitanen
481fdf913b
[build] Use version info from the CMakeLists.txt
2022-04-28 15:32:26 +03:00
Marko Viitanen
6b07bb3591
[build] Remove x264asm abstraction layer since it is not used anymore
2022-04-28 15:31:41 +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
Marko Viitanen
576bf569d3
[build] Replace visual studio and autotools build systems with CMake
2022-04-28 14:13:20 +03:00
Marko Viitanen
227556a13e
[build] Remove support for the yasm asm build
2022-04-28 14:12:09 +03:00
Joose Sainio
ede7603361
Fix chroma bit cost calculation
2022-04-21 11:17:44 +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
d41103385a
fix cclm
2022-04-15 12:39:18 +03:00
Joose Sainio
e9a081de4f
Count bits for mip and mrl
2022-04-15 12:25:07 +03:00
Joose Sainio
61a3612395
Fix incorrect bit counting
2022-04-15 11:39:18 +03:00
Joose Sainio
b9618690e7
Generate mrl references for mrl rough search
2022-04-15 11:39:18 +03:00
Joose Sainio
f4dc3ab43b
Fix jccr and chroma mode search
2022-04-15 11:39:18 +03:00
Joose Sainio
24faf0024d
Fix MTS and actually select the best intra mode for rd < 2
2022-04-15 11:39:17 +03:00
Joose Sainio
901d60b8e7
Fix monochrome, maybe mts search and cabac debug
2022-04-15 11:39:17 +03:00
Joose Sainio
abcf2a12b8
Fix setting chroma mode to planar for mip pus
2022-04-15 11:39:17 +03:00
Joose Sainio
2c48453e59
Fix mip mode count macros
2022-04-15 11:39:17 +03:00
Joose Sainio
43c2f9318e
Fix mip mode generation
2022-04-15 11:39:17 +03:00
Joose Sainio
69dfd816f1
oops
2022-04-15 11:39:17 +03:00
Joose Sainio
b8e5e1d9e3
Fix mrl rough search
2022-04-15 11:39:16 +03:00
Joose Sainio
f75b2fdb34
Fix tr_depth setting and restore checking all pred_modes rd cost
2022-04-15 11:39:16 +03:00
Joose Sainio
6aa8240db0
Fix test_external_symbols
2022-04-15 11:39:16 +03:00
Joose Sainio
5f1e9c820f
Rough search for mrl and mip
2022-04-15 11:39:16 +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
00acf661cf
WIP: intra prediction generation from a singular function
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
52240bde6e
ignore chroma during regular intra search
2022-04-15 11:39:15 +03:00
Joose Sainio
debe5924a9
Fix
2022-04-15 11:38:31 +03:00
Joose Sainio
863929378f
Better get_mvd_coding_cost
2022-04-01 15:15:29 +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
57cd9bd97e
minor fixes
2022-03-31 12:11:33 +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
45a9bed7fb
Don't count jccr bits when jccr is disabled
2022-03-31 10:30:02 +03:00
Joose Sainio
c777acd91e
correct calculation of mvd bitcost
2022-03-30 15:06:44 +03:00
Joose Sainio
2bf16c2010
Fix correct precision for all motion vectors
2022-03-30 11:00:17 +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
d531d77b75
fix chroma 4x4
2022-03-28 10:21:15 +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
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
99ddc209fc
Fix cclm when tiles are enabled
2022-03-25 10:20:44 +02:00
Joose Sainio
41c9f5b858
Fix undefined behavior
2022-03-25 09:29:35 +02:00
Joose Sainio
2050de8891
Fix cclm prediction generation for depth 0
2022-03-25 08:54:31 +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
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
9b7dc207b6
remove unnecessary copying of cabac state
2022-03-18 08:28:32 +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
1ae5ecdec5
include pred_mode_bits for 2Nx2N inter pus for rd=0/1
...
# Conflicts:
# src/search_inter.c
2022-03-18 08:28:31 +02:00
Joose Sainio
b0037b814d
Use correct lambda
...
# Conflicts:
# src/search_inter.c
2022-03-18 08:28:31 +02:00
Joose Sainio
00516d3dce
Make sure intra does not accidentally skip coeff cost calculation
2022-03-18 08:28:31 +02:00
Joose Sainio
e0ed91658b
Fix no-early-skip without breaking early-skip
2022-03-18 08:28:31 +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
2ac9daf6e4
accurate inter bit cost during search
2022-03-18 08:28:30 +02:00
Joose Sainio
49c8334dd7
count skip flag
2022-03-18 08:28:30 +02:00
Joose Sainio
8cd81e3dcf
Only count smp extra cbf bits when rd < 2
2022-03-18 08:28:30 +02:00
Joose Sainio
3ac17ffd95
better early skip?
2022-03-18 08:28:30 +02:00
Joose Sainio
c7174b25cf
smp/amp CUs cannot be skipped
2022-03-18 08:28:30 +02:00
Joose Sainio
71b1e59548
Better early-skip?
2022-03-18 08:28:30 +02:00
Joose Sainio
ff02a84a96
Probably better order of things
2022-03-18 08:28:30 +02:00
Joose Sainio
a9255901d9
Only perform rd2 calculation on the best candidate of the list if it exists
...
But only for 2Nx2N blocks
2022-03-18 08:28:29 +02:00
Joose Sainio
a0e7165df4
use correct pu for rd calc
2022-03-18 08:28:29 +02:00
Joose Sainio
6d73db5a2a
Probably correct RD cost calculation for all inter modes
2022-03-18 08:28:29 +02:00
Joose Sainio
1a9e54601f
Calculate rd2 cost for all inter modes instead of just the final one
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
f3f0037123
include root_cbf cost
2022-03-18 08:28:29 +02:00
Joose Sainio
aaac260438
better merge cost
2022-03-18 08:28:28 +02:00
Joose Sainio
159793f5b4
more accurate get_mvd_coding_cost
2022-03-18 08:28:28 +02:00
Joose Sainio
8d12884e43
disable VERBOSE
2022-03-18 08:28:28 +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
951a845f08
Remove consts and fix wrong types
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
311fceade7
Force use inter
2022-03-18 08:19:56 +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
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
Joose Sainio
eff8d7cdac
Fix picture headers for open-gop
2022-03-14 10:32:46 +02:00
Joose Sainio
763ad3f8f5
Merge remote-tracking branch 'remotes/origin/unify-roi-features'
2022-03-12 08:48:09 +02:00
Joose Sainio
0dd7646a34
Fix mip context calculation for P and B slices
2022-03-10 10:48:37 +02:00
siivonek
ae2e0da6ab
[mip] Add parenthesis around macro parameters.
2022-03-04 00:19:01 +02:00
siivonek
fa963234a8
[mip] Fix CI error. Const modifier in wrong place.
2022-02-16 17:14:26 +02:00