siivonek
6a3ddfd0bc
[isp] Modify inverse transform to handle non-square blocks.
2023-08-14 12:15:42 +03:00
siivonek
626c9b02ea
[isp] Modify transform and quantization functions to handle non-square blocks. Add strategy headers to CMakelist.
2023-08-14 12:15:41 +03:00
siivonek
06532dce02
[isp] Implement ISP search and partitioning. Add helper function for constructing cu_loc types. WIP stuff for transform.
2023-08-14 12:15:40 +03:00
siivonek
6236cc29be
[isp] Fix avx2 function call.
2023-08-14 12:15:39 +03:00
siivonek
ec4909095c
[isp] Do not filter references if ISP is used.
2023-08-14 12:15:38 +03:00
siivonek
96df3ffd64
[isp] Change function calls to cu_loc_t.
2023-08-14 12:15:38 +03:00
siivonek
9406c5c31d
[isp] Modify generic intra pred functions to handle non-square blocks.
2023-08-14 12:15:37 +03:00
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
siivonek
9b04a6f302
[mip] Combine mip mode search loop into the original intra mode search loop. Some code clean up.
2022-02-15 11:24:01 +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
09f3af81c6
[mip] Improve mip flag context function.
2022-02-10 00:41:20 +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
e8ef0d2b28
[mip] Fix undefined behaviour error in CI test.
2022-02-09 12:55:17 +02:00
siivonek
fcde90fbe0
[mip] Change kvz_pixel to int inside MIP implementation since some temp values could be negative. Add define for intra reference line length. Fix bug where wrong intra mode was passed to recon after search.
2022-02-09 12:55:17 +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
8aea4f67f7
[mip] Fix reference indexing error.
2022-02-09 12:55:17 +02:00
siivonek
b8a8bce55a
[mip] Fix MIP bit cost calculation.
2022-02-09 12:55:17 +02:00
siivonek
55e4091030
[mip] Fix MIP cabac write.
2022-02-09 12:55:16 +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
0cf89e9516
[mip] Fix CI errors.
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
2daa8ad537
[mip] Implement cabac write.
2022-02-09 12:55:16 +02:00
siivonek
59a86f339e
[mip] Implement MIP search.
2022-02-09 12:55:16 +02:00
siivonek
e672f9b24a
[mip] Implement MIP functions.
2022-02-09 12:55:15 +02:00
siivonek
0b9568b466
Re-add debug files to project file filters. Makefile spaces to tabs.
2022-02-09 12:55:15 +02:00
siivonek
cb2ccce753
[mip] WIP Implement mip functions.
2022-02-09 12:55:15 +02:00
siivonek
3bbef3dff6
[mip] Add mip weight matrices.
2022-02-09 12:55:15 +02:00
siivonek
746ae8ab85
[mip] WIP Implement mip functions.
2022-02-09 12:55:15 +02:00
siivonek
07d78e07a6
[mip] Add defines.
2022-02-09 12:55:15 +02:00
siivonek
e7da0712e5
[mip] Add commandline option for MIP.
2022-02-09 12:55:15 +02:00
Ari Lemmetti
917d26f1bf
Unify delta QP / ROI map functionality.
2022-02-08 20:15:27 +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
57d8623931
[Deblock] Fix B-frame detection
2021-12-30 16:18:43 +02:00
Jaakko Laitinen
fe9d673b2a
[Deblock] Fix Luma issue
...
mvdThreashold set incorrectly
2021-12-29 17:26:00 +02:00
siivonek
4ffef711d7
Merge branch 'intra_mrl_cost'
2021-12-15 15:51:19 +02:00
Marko Viitanen
2545081be5
[threading] Added more margin to fracmv_within_tile() because of nondeterministic behaviour
2021-12-14 11:16:43 +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
Joose Sainio
6c50939af3
Different roi-matrix for each frame
...
Implement reading the roi-matrix for each frame from binary file. Extremely simple and breaks on any unhappy paths.
# Conflicts:
# src/cfg.c
# src/cli.c
# src/encoder.c
# src/image.c
# src/rate_control.c
2021-12-12 22:13:05 +02:00
Jaakko Laitinen
77457391b4
[Deblock] Refactor deblock pixel gather
...
Refactor deblock pixel gather for large blocks to be less confusing.
2021-12-10 19:05:43 +02:00
Marko Viitanen
dce5c2b293
[threading] Add dependency to one more CTU to the right
...
* in VVC the conditions for limiting motion vectors might not have been correct
* x + 1 and y + 1 CTU dependency did not mean that x + 2 would be available, as in HEVC
2021-12-10 16:07:34 +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
Ari Lemmetti
51dd942778
Fix uninitialized fields of CU/PU infos.
2021-12-10 00:32:08 +02:00
Ari Lemmetti
2424a976a4
Prevent using uninitialized memory
2021-12-10 00:21:58 +02:00
Ari Lemmetti
e45c6a9c68
Fix too few added keys in inter search stats.
...
The function search_pu_inter_bipred may add more PUs than there are reference pictures.
2021-12-10 00:03:37 +02:00
siivonek
236265a1f4
[mrl] Implement MRL bitcost calculation.
2021-12-09 16:43:25 +02:00
Ari Lemmetti
a1a7036445
Fix indexing. Get rid of warning about jump depending on uninitialized value.
2021-12-08 23:06:39 +02:00
Ari Lemmetti
bb1f2a0895
Reorder condition to prevent indexing past the array
2021-12-08 21:13:25 +02:00
Ari Lemmetti
e87b12dec1
Move mv_cand initialization to better place
2021-12-08 21:09:16 +02:00
Ari Lemmetti
f17a500b77
Get rid of warnings. (Unused variables, suggested parentheses)
2021-12-08 21:06:12 +02:00
Ari Lemmetti
c411e65977
Prevent FME and bipred from the same reference picture if present in L0 and L1
2021-12-08 20:35:03 +02:00
Ari Lemmetti
49935710a8
Only one ME per reference picture (same ref in L0 and L1)
2021-12-08 16:35:47 +02:00
Ari Lemmetti
ae498553c0
Add define MAX_UNIT_STATS_MAP_SIZE. Add assertions to inter search.
2021-12-08 15:53:31 +02:00
siivonek
dea3ca12aa
Merge branch 'intra_mrl'
2021-12-08 15:51:50 +02:00
Ari Lemmetti
1af90b194e
Add missing bits to RD costs.
2021-12-08 15:34:05 +02:00
Ari Lemmetti
706d718d5d
Perform FME for n best PUs from L0 and L1.
2021-12-08 15:34:05 +02:00
Ari Lemmetti
7f7112cc57
Use up-to-date value of mv dir for bit cost calculations
2021-12-08 15:34:04 +02:00
Ari Lemmetti
4e19f7b71e
Move mode decision logic and current PU setting to higher-level functions
2021-12-08 15:34:04 +02:00
Ari Lemmetti
3e967c0077
Add missing assertion and set cu before
2021-12-08 15:34:04 +02:00
Ari Lemmetti
bdece66dc4
Compare the final costs only once and then set the current CU
2021-12-08 15:34:04 +02:00
Ari Lemmetti
0b223b24f2
Fix comment
2021-12-08 15:34:03 +02:00
Ari Lemmetti
4d02b69c4e
Set CU type in inter search functions
2021-12-08 15:34:03 +02:00
Ari Lemmetti
2b9b398524
Remove now unnecessary state store/restore
2021-12-08 15:34:03 +02:00
Ari Lemmetti
3a219146ed
Rename some variables
2021-12-08 15:34:03 +02:00
Ari Lemmetti
dc4676eef1
Remove merge attempts from bipred functions
2021-12-08 15:34:03 +02:00
Ari Lemmetti
adb31ce959
Use the new struct for bipred refinement as well
2021-12-08 15:34:02 +02:00
Ari Lemmetti
70a393a3dc
Set mv candidates before cost calculations for bipred. Use the new struct for bipred.
2021-12-08 15:34:02 +02:00
Ari Lemmetti
574d6c4593
Eliminate copy-paste logic from different ME algorithms.
2021-12-08 15:34:02 +02:00
Ari Lemmetti
d28c2295dc
The best_* fields are no longer used to track anything. Convert costs to double.
2021-12-08 15:34:02 +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
5edb82648a
More intuitive logic for computing RD costs and bit costs for SMP
2021-12-08 15:34:01 +02:00
Ari Lemmetti
aca9192054
Move cu_info_t initializations to search_pu_inter. Rename cur_cu cur_pu.
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
Ari Lemmetti
94096dd175
Ignore merge candidates when computing AMVP motion vector costs.
2021-12-08 15:34:00 +02:00
Ari Lemmetti
48773b0d25
Replace and relocate deprecated cost and mode parameter tracking.
2021-12-08 15:34:00 +02:00
Ari Lemmetti
1940f0880f
Add amvp unipredictions to both lists if reference picture is present
2021-12-08 15:33:57 +02:00
siivonek
64e6eb1f28
[mrl] Clean old commented mrl code.
2021-12-08 15:21:43 +02:00
Marko Viitanen
c6b9e19b2f
[mrl] Fix kvz_intra_build_reference_inner() top reference building for mrl
2021-12-08 15:00:27 +02:00
Marko Viitanen
0dcd6dbec0
[mrl] Fix kvz_angular_pred_avx2() for mrl and enable cpuid in CI
2021-12-08 14:48:44 +02:00
Marko Viitanen
05e55f7fea
[mrl] Simplify and fix kvz_intra_build_reference_inner() for mrl cases
2021-12-08 14:39:47 +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
1dd378e851
[cleanup] Remove deprecated width and height parameters and other small changes
...
* change some mentions of Kvazaar to uvg266
* remove cfg.framerate
2021-12-02 23:09:40 +02:00
Marko Viitanen
3a447e09c2
[trskip] Allow changing the max tr-skip size
2021-12-02 22:56:07 +02:00
Ari Lemmetti
2ed434e57b
Remove now deprecated array
2021-12-02 20:00:19 +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
936fb76685
Remove merge candidate stuff from search_pu_inter_ref
...
There is a separate merge analysis now
2021-12-02 20:00:19 +02:00
Ari Lemmetti
3265d45a4e
Temporarily remove FME threshold for verification purposes
2021-12-02 20:00:18 +02:00
Ari Lemmetti
e000c7229f
Fix bit costs in search_pu_inter_ref a bit
2021-12-02 20:00:18 +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
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
03013f571d
[tmvp] Fix a bug with selecting tmvp reflist and negate the MVs according to POC
2021-12-01 12:42:04 +02:00
Marko Viitanen
4f42c9c22c
[debug] Fix problems in YUView CSV format
2021-12-01 08:55:21 +02:00
Marko Viitanen
c4aa579911
[debug] Change tabs to semicolons
2021-11-30 22:15:14 +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
54505e0250
[mrl] Fix warnings.
2021-11-29 20:55:39 +02:00
siivonek
675e8b2d83
[mrl] Fix extra reference length in LCU bottom edge. Disable trace origins in valgrind test.
2021-11-29 17:11:41 +02:00
siivonek
a01734375b
[mrl] Fix reference builder call in CCLM code.
2021-11-29 17:11:40 +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
b83d7687dc
Fix assert.
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
0dc25b86e2
Fix invalid memory read.
2021-11-29 17:11:40 +02:00
siivonek
9cce86ff61
Fix MRL behaviour on left LCU edge. Pass additional left edge reference buffers to reference building for MRL.
2021-11-29 17:11:39 +02:00
siivonek
ddd0474c21
Fix filter error in block reconstruction when MRL is used. Disable PDPC during block reconstruction if MRL is used. Fix error in reference building.
2021-11-29 17:11:39 +02:00
siivonek
e41067220c
Fix error in block reconstruction when MRL is used.
2021-11-29 17:11:39 +02:00
siivonek
231c6f3e72
Fix top left reference building.
2021-11-29 17:11:39 +02:00
siivonek
54646e7be7
Disable intra reference filtering if MRL is used.
2021-11-29 17:11:39 +02:00
siivonek
eb32f40bd9
Another fix for reference building.
2021-11-29 17:11:39 +02:00
siivonek
b0a4f3345a
Fix top left reference building when MRL enabled. Fix reference line extension when MRL enabled.
2021-11-29 17:11:38 +02:00
siivonek
c616d3bf8a
Fix the inner case of reference building when MRL is used.
2021-11-29 17:11:38 +02:00
siivonek
a2a1a2a1a8
Fix mistakes in MRL related reference building.
2021-11-29 17:11:38 +02:00
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
Ari Lemmetti
d6b2ec5814
Only check used reference picture lists when validating merge candidates.
...
Merge candidate struct should be initialized to zero, so this should not have any effect. The conditions are added in case someone decides to copy the code as an example.
2021-11-26 18:47:14 +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
Marko Viitanen
4a42b5cbc4
[cleanup] Remove HMVP debug code and extra arrays in intra coding
2021-11-08 10:11:17 +02:00
Marko Viitanen
c9d8412682
[inter] use Merge regions to limit the merge candidates
2021-11-08 09:51:23 +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
Marko Viitanen
aea4e349f5
[inter] Implement HMVP LUT updates during the search
2021-11-05 13:13:11 +02:00
Marko Viitanen
30d97d9af6
[inter] Implement pairwise-average candidates for merge candidates
...
- Half-pel candidates are skipped for now because it needs some special handling
2021-11-01 13:24:23 +02:00
Marko Viitanen
4a7e4e3e20
[inter] Add HMVP to merge candidate list
2021-10-29 14:19:20 +03:00
Marko Viitanen
41c1b6172c
[inter] Fix picture headers for P/B slices and disable some features in tests
2021-10-29 10:30:12 +03:00
Marko Viitanen
73c4128100
[quant] Map scalinglistType correctly
2021-10-29 09:10:15 +03:00
Marko Viitanen
492d22e8be
Disable interpolation AVX2 optimizations for now
2021-10-29 08:43:52 +03:00
Marko Viitanen
852da3c4f0
[inter] Fix overflow in HMVP shifting
2021-10-29 08:36:34 +03:00
Marko Viitanen
e2bdf02acc
[inter] fix merge_candidates_t initialization
2021-10-26 11:50:32 +03:00
Marko Viitanen
b0e6ab9f96
[inter] MVP candidate order fix and limit b0 with wpp
2021-10-25 22:57:58 +03:00
Marko Viitanen
112ce66259
[inter] Disable merge and skip modes -> inter working
2021-10-25 11:26:07 +03:00
Marko Viitanen
08766c0bb3
[inter] Fix max-merge usage
2021-10-25 11:25:23 +03:00
Marko Viitanen
899c672ed1
Make sure the dpb is more than max_num_reorder_pics
2021-10-19 10:16:04 +03:00
Ari Lemmetti
d4880be6f2
Compute proper count of buffered frames for vps and sps. Use common function.
2021-10-19 02:34:32 +03:00
Marko Viitanen
cc22233117
Change version to v2.1.0
2021-10-13 15:24:01 +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
b68625b869
Add correct reorder and buffering values to VPS, as they were only in SPS
2021-10-13 10:54:35 +03:00
Marko Viitanen
7918628b8e
Offset output dts by -1 when num_out >= gop_len, otherwise there will be a gap of 2 dts. Fixes #310
2021-10-11 11:18:58 +03:00
Marko Viitanen
7a5eb7712b
Fix merge candidate derivation order
2021-10-08 16:34:02 +03:00
Marko Viitanen
a39bc69482
Move HMVP arrays to more suitable place
2021-10-08 16:33:32 +03:00
Marko Viitanen
f68ba68fb2
Push HMVP item also when coding a skipped cu
2021-10-08 16:29:15 +03:00
Marko Viitanen
b8ba814909
Fix mv cand selection from HMVP -> working if no merging
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
c4dcabe95b
Add config parameter "parallel_merge_level" and array for hmvp
2021-10-08 16:28:54 +03:00
Marko Viitanen
cb9f9381c3
[inter] Fix inter reconstruction, correct function was in wrong branch
2021-10-08 14:48:49 +03:00
Marko Viitanen
78363ccab0
Replace bitstream->simulation with cabac->only_count
2021-09-14 17:44:56 +03:00
Marko Viitanen
19ff5a21ca
[alf] Fix a problem with alf and not updating the cabac contexts
...
* Added a bitstream coding simulation after LCU search
2021-09-14 10:03:23 +03:00
Marko Viitanen
3bbb3b7e36
[thread] Add correct wavefront dependencies when ALF is used
2021-09-13 21:34:14 +03:00
Marko Viitanen
aa36c1e86b
[thread] change wavefront dependencies to depend on bitstream writing instead of recon
...
* Possible fix for non-deterministic behaviour
2021-09-13 20:37:31 +03:00
Marko Viitanen
5271659f76
[inter] write ref pic list to the bitstream
2021-09-08 13:50:35 +03:00
Ari Lemmetti
171b9c60b3
[SIMD] Convert planar and DC mode PDPC loops to AVX2
2021-09-08 03:40:38 +03:00
Ari Lemmetti
ad35d4a4c8
[SIMD] Loop transformation, prepare data for latter loop
2021-09-06 22:38:37 +03:00
Ari Lemmetti
22da8cfe65
[SIMD] Loop transformations for SIMD processing
2021-09-06 22:30:36 +03:00
Ari Lemmetti
c195d906d3
[SIMD] Copy generic implementation of planar/DC PDPC as a skeleton
2021-09-06 21:20:51 +03:00
Ari Lemmetti
c6b33c7b92
[SIMD] Move PDPC condition out of strategy
2021-09-06 21:20:51 +03:00
Ari Lemmetti
46cf9b6871
[SIMD] Make strategy out of PDPC for planar and DC
2021-09-06 21:20:51 +03:00
Ari Lemmetti
816e7a5a91
[SIMD] Replace PDPC remainder loop with masking operations
2021-09-06 21:20:51 +03:00
Ari Lemmetti
1926b4cc27
[SIMD] Initial AVX2 code for transpose in angular prediction
2021-09-06 21:20:50 +03:00
Ari Lemmetti
913573baca
[SIMD] Initial AVX2 code for PDPC in angular prediction
2021-09-06 21:20:50 +03:00
Ari Lemmetti
7ccd1a571c
[SIMD] Initial AVX2 code for 4-tap filtering in angular prediction.
2021-09-06 21:20:50 +03:00
Ari Lemmetti
20f0ff976d
[SIMD] Transform angular pred loops for SIMD processing.
2021-09-06 21:20:49 +03:00
Ari Lemmetti
3dfe09e850
[SIMD] Copy generic implementation of angular prediction as a skeleton.
2021-09-06 21:20:46 +03:00
Joose Sainio
450cbd356c
Merge branch 'joint_cbcr' into 'master'
...
[jccr] Add joint coding of chroma residual
See merge request cs/ultravideo/vvc/uvg266!6
2021-09-06 11:43:06 +03:00
Joose Sainio
91374e95a9
[MTS] Move chroma outside of mts search
2021-09-06 11:28:33 +03:00
Joose Sainio
276f0bf006
[jccr] fix undefined behaviour that did not really affect anything
2021-09-06 11:28:33 +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
0592cc65a0
[jccr] enable rdoq with jccr
2021-09-06 11:28:20 +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
839b9527af
Fix nal unit debug printing when VERBOSE is used
2021-09-01 14:28:07 +03:00
Marko Viitanen
26f18865f7
[alf] Change the processing in alf_get_blk_stats_avx2() to allow utilizing the whole 256bit register
2021-08-27 13:40:28 +03:00
Marko Viitanen
fdf125f406
[alf] Fix incorrect conversion in alf_get_blk_stats_avx2
2021-08-27 10:25:20 +03:00
Marko Viitanen
6714973264
[alf] Change _mm_store_si128 to _mm_storeu_si128 in alf_get_blk_stats_avx2()
2021-08-26 18:05:06 +03:00
Marko Viitanen
5df8add046
[alf] Change order of alf_covariance.y array for better AVX2 optimization in alf_get_blk_stats_avx2()
2021-08-26 15:37:01 +03:00
Marko Viitanen
be9527cf1d
[alf] Change the order of alf_covariance.ee values to get better optimized solution for alf_get_blk_stats_avx2()
2021-08-26 11:07:13 +03:00
Marko Viitanen
f4de5cfd0f
[alf] Cleanup alf_calc_covariance_avx2() and use integers in alf_get_blk_stats_avx2()
2021-08-26 10:20:57 +03:00
Marko Viitanen
915bf3ca24
[alf] Fix AVX2 priority
2021-08-25 20:29:58 +03:00
Marko Viitanen
8ef3e6a126
[alf] Add strategy for alf_get_blk_stats() and an initial AVX2 version
2021-08-25 20:22:24 +03:00
Marko Viitanen
f61b9138cd
[alf] Import SSE4.1 optimized 5x5 and 7x7 filters from VTM13
...
* Modified to work with 8-bit pixels
2021-08-25 11:50:37 +03:00
Marko Viitanen
dc6a29b0d8
[alf] Initial generic strategies for 5x5 and 7x7 filtering
2021-08-25 10:50:00 +03:00
Marko Viitanen
c3c96d69c2
[alf] Add modified alf_derive_classification_blk_sse41() from VTM 13.0
...
* Modified to work with bitdepth 8
2021-08-20 11:45:02 +03:00
Marko Viitanen
b158d05bca
[alf] rename strategy function to include prefix
2021-08-19 17:19:17 +03:00
Marko Viitanen
3efaeede76
[alf] Define the strategy for alf_derive_classification_blk()
2021-08-19 17:04:35 +03:00
Marko Viitanen
dee8a167e4
Clean up entropy tables and some unused code / comments
2021-08-17 10:31:14 +03:00
Marko Viitanen
9e9a8058c5
[alf] Allocate alf covariance and classifier memory only when needed
2021-08-15 10:44:05 +03:00
Marko Viitanen
2007132937
[alf] Make the alf structs a bit more memory efficient
2021-08-15 10:44:04 +03:00
Marko Viitanen
d742f57779
Remove angular_pred_avx2 so we don't need extra parameter
2021-08-15 10:43:48 +03:00
Marko Viitanen
ef287ee00c
[alf] Add math.h header to alf.c for sqrt()
2021-08-15 10:41:55 +03:00
Marko Viitanen
b5bc981d2a
Add entropy bits back to intra luma mode cost
...
* Makes things better after the entropies were fixed
2021-08-15 08:10:45 +03:00
Marko Viitanen
1e925ec980
[rdoq] fix kvz_ts_rdoq error scale
2021-08-14 22:52:32 +03:00
Marko Viitanen
8fcf5cf55c
[rdoq] Fix a lot of things
...
* Fix entropy table
* fix float entropy
* use dest_coeff instead of coef in ctx_idx_abs calculation
* Calculate new ctx_sig in correct place
2021-08-14 22:12:08 +03:00
Marko Viitanen
b412a96820
[cleanup] Change mentions of Kvazaar to uvg266 in README.md and remove crypto parameters
2021-07-27 10:18:45 +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
99a2b0384d
[cleanup] remove some warnings
2021-07-26 11:42:19 +03:00
Marko Viitanen
226d7a9f53
[alf] remove alf clipping functions and free tqj_alf_process also when new job is allocated
2021-07-26 11:21:57 +03:00
Marko Viitanen
eb491ecea2
[alf] free state->tqj_alf_process to not leak memory
2021-07-26 10:26:50 +03:00
Marko Viitanen
0f8f422ad6
[alf] use correct lcu index with wpp and use proper cabac context for alf search
2021-07-25 20:19:17 +03:00
Marko Viitanen
90ed51a6ad
[alf] remove encoder_state_worker_encode_lcu since it is not used
2021-07-23 21:58:36 +03:00