Joose Sainio
|
0c63743fc0
|
[mtt] Early terminations for all intra
|
2023-08-15 13:08:21 +03:00 |
|
Joose Sainio
|
bd3ec75173
|
[mtt] search early terminations
|
2023-08-15 13:08:20 +03:00 |
|
Joose Sainio
|
2d00cab4b9
|
[isp] properly reset cabac context during intra search
|
2023-08-15 13:08:20 +03:00 |
|
Joose Sainio
|
b27eca7c37
|
[deblock] fix width and height to correct order
|
2023-08-15 13:08:19 +03:00 |
|
Joose Sainio
|
eae7d72384
|
[isp] Keep cabac contexts up to date for the different isp tus
|
2023-08-15 13:08:18 +03:00 |
|
Joose Sainio
|
c744f79117
|
[mtt] Fix rdoq for non-square blocks
|
2023-08-15 13:08:17 +03:00 |
|
Joose Sainio
|
3b09c66d25
|
[deblock] Use the isp block dimensions instead of cu dimensions fro deblock
|
2023-08-15 13:08:17 +03:00 |
|
Joose Sainio
|
73956a9a46
|
[isp] Fix isp bitcost calculation
|
2023-08-15 13:08:16 +03:00 |
|
Joose Sainio
|
f3c8a4f5db
|
[lfnst] Also chroma can only use lfnst if dimensions are minimum 4
|
2023-08-15 13:08:15 +03:00 |
|
Joose Sainio
|
a36a1fb5ff
|
[mtt] There is always at least the height or width amount reference pixels available
|
2023-08-15 13:08:15 +03:00 |
|
Joose Sainio
|
af23c81afa
|
[mtt] Fix reading uninitialized data for local chroma tree
|
2023-08-15 13:08:14 +03:00 |
|
Joose Sainio
|
9acdab3209
|
[mtt] Fix lfnst bit counting for 64 wide or tall chroma tree cus
|
2023-08-15 13:08:13 +03:00 |
|
Joose Sainio
|
812377db45
|
[mtt] Set cus outside of the frame to zero for initializing partial worktree
|
2023-08-15 13:08:12 +03:00 |
|
Joose Sainio
|
27d114bc08
|
[mtt] Fix negative indexing
|
2023-08-15 13:08:11 +03:00 |
|
Joose Sainio
|
4e203108bc
|
[mtt] Fix ref pixel generation for the second half of 32x2 chroma cus
|
2023-08-15 13:08:11 +03:00 |
|
Joose Sainio
|
446c53fd00
|
[mtt] Fix cclm for non 64 divisible heights
|
2023-08-15 13:08:10 +03:00 |
|
Joose Sainio
|
ad2bb20f23
|
[mtt] Fix deblock for isp and properly set the limit for cclm
|
2023-08-15 13:08:09 +03:00 |
|
Joose Sainio
|
c89ebf8bf1
|
[cclm] Fix heap corruption for non 64 divisible frames
|
2023-08-15 13:08:08 +03:00 |
|
Joose Sainio
|
d296cac7c3
|
[mtt] fix reference building for 16x1
|
2023-08-15 13:08:07 +03:00 |
|
Joose Sainio
|
926ed7e145
|
[rdoq] partly fix rdoq for 16x1 and 1x16
|
2023-08-15 13:08:06 +03:00 |
|
Joose Sainio
|
8e4b864e6b
|
[deblock] Fix incorrect direction for transform split of tall blocks at the top CTU row also for chroma
|
2023-08-15 13:08:05 +03:00 |
|
Joose Sainio
|
34aed10ec1
|
[mtt] fix
|
2023-08-15 13:08:05 +03:00 |
|
Joose Sainio
|
1333ab55d9
|
[mtt] Fix ref building for 32x64 cus
|
2023-08-15 13:08:04 +03:00 |
|
Joose Sainio
|
1493a2616c
|
[mtt] fix getting collocated chroma for edge cus
|
2023-08-15 13:08:03 +03:00 |
|
Joose Sainio
|
ffe17e48d7
|
[mtt] minor fixes
|
2023-08-15 13:08:02 +03:00 |
|
Joose Sainio
|
06fa86c340
|
[isp] Fix coordinates
|
2023-08-15 13:07:59 +03:00 |
|
Joose Sainio
|
71516b8155
|
[mtt] Make sure mtt splits cannot reach a situation where search cannot be performed
|
2023-08-15 13:07:58 +03:00 |
|
Joose Sainio
|
23e6b9f56c
|
[mtt] Check that we are inside the CTU before checking the ctu data
|
2023-08-15 13:07:58 +03:00 |
|
Joose Sainio
|
facbc794bf
|
[mtt] Fix trying to get split data from depth -1
|
2023-08-15 13:07:57 +03:00 |
|
Joose Sainio
|
567fa7b2bd
|
[deblock] Fix incorrect direction for transform split of tall blocks at the top CTU row
|
2023-08-15 13:07:56 +03:00 |
|
Joose Sainio
|
9c2574880a
|
[mtt] Fix deblock for --combine-intra
|
2023-08-15 13:07:55 +03:00 |
|
Joose Sainio
|
90ce1390c0
|
[mtt] static
|
2023-08-15 13:07:54 +03:00 |
|
Joose Sainio
|
f6ecb15ced
|
[mtt] Fix implicit splits when mtt is not enabled
|
2023-08-15 13:07:53 +03:00 |
|
Joose Sainio
|
05218bae21
|
[jccr] jccr=4 hasn't been necessary for a long time
|
2023-08-15 13:07:52 +03:00 |
|
Joose Sainio
|
b69e9b2958
|
[mtt] Fix final issues?
|
2023-08-15 13:07:51 +03:00 |
|
Joose Sainio
|
6620ba8d76
|
[mtt] fix deblock
|
2023-08-15 13:07:50 +03:00 |
|
Joose Sainio
|
09baddef17
|
[mtt] Fix lfnst and chroma coeffs and tests
|
2023-08-15 13:07:49 +03:00 |
|
Joose Sainio
|
992182dafb
|
WIP
|
2023-08-15 13:07:48 +03:00 |
|
Joose Sainio
|
ba0d43d846
|
[mtt] Fill chroma data for the whole area covered by the local separate tree chroma cu
|
2023-08-15 13:07:47 +03:00 |
|
Joose Sainio
|
412dd20f09
|
[mtt] Fix implicit splits for non ctu divisible frames.
|
2023-08-15 13:07:46 +03:00 |
|
Joose Sainio
|
2da1a34ff3
|
[mtt] Fix isp for MTT
|
2023-08-15 13:07:45 +03:00 |
|
Joose Sainio
|
b988c60dd1
|
[mtt] search works completely with everything except RDOQ deblock and ISP
|
2023-08-15 13:07:44 +03:00 |
|
Joose Sainio
|
6a6bed7f1f
|
[mtt] WIP
|
2023-08-15 13:07:43 +03:00 |
|
Joose Sainio
|
065eb6fc03
|
[mtt] fix lfnst
|
2023-08-15 13:05:38 +03:00 |
|
Joose Sainio
|
9e644fafd0
|
[mtt] search with mtt depth 2 and dual tree works without lfnst
|
2023-08-15 13:05:37 +03:00 |
|
Joose Sainio
|
fb146cb6ed
|
[mtt] proper split availability checking for split flag
|
2023-08-15 13:05:35 +03:00 |
|
Joose Sainio
|
d5d9afb1e2
|
[mtt] fix dual tree
|
2023-08-15 13:05:19 +03:00 |
|
Joose Sainio
|
8fbefc0de3
|
[mtt] fix cost calculation
|
2023-08-15 13:04:29 +03:00 |
|
Joose Sainio
|
657254d38a
|
[mtt] search with depth 1 mtt kinda working
|
2023-08-15 13:04:28 +03:00 |
|
Joose Sainio
|
13aae7d03d
|
[mtt] All individual mtt splits should be working + uvg_get_possible_splits
|
2023-08-15 13:04:27 +03:00 |
|
Joose Sainio
|
7b117f171f
|
[mtt] WIP 16x16 TT split
|
2023-08-15 13:04:26 +03:00 |
|
Joose Sainio
|
43a710e104
|
fix rebase
|
2023-08-15 13:04:25 +03:00 |
|
Joose Sainio
|
d257376ca0
|
[mtt] Single mtt split works for everything else, except 16x16 with TT
|
2023-08-15 13:04:24 +03:00 |
|
Joose Sainio
|
26ee443d2f
|
[mtt] 64x32 and 32x64
|
2023-08-15 13:04:23 +03:00 |
|
Joose Sainio
|
ab21c7e1d7
|
[mtt] Fix sqrt adjustment, cclm calculation on edges of CTU and waip for lfnst
|
2023-08-15 13:04:22 +03:00 |
|
Joose Sainio
|
5875dc1ef4
|
[mtt] Fix counting the number of reference pixles and implement WAIP adjustment
|
2023-08-15 13:04:21 +03:00 |
|
Joose Sainio
|
b893a9268c
|
[mtt] WIP
|
2023-08-15 13:04:20 +03:00 |
|
Joose Sainio
|
5ba8d45981
|
WIP
|
2023-08-15 13:04:19 +03:00 |
|
Joose Sainio
|
70cbaae619
|
[mtt] square root adjustment for quantization
|
2023-08-15 13:04:18 +03:00 |
|
Joose Sainio
|
f19084569d
|
WIP
|
2023-08-15 13:04:17 +03:00 |
|
Joose Sainio
|
bbbd391b9e
|
[mtt] WIP
|
2023-08-15 13:03:40 +03:00 |
|
Joose Sainio
|
02a5adf768
|
[mtt] remove work_tree
|
2023-08-15 13:01:57 +03:00 |
|
Joose Sainio
|
f2abdd6424
|
[mtt] Remove work_tree_copy_down and change work_tree_copy_up not to require the whole work tree as input parameter
|
2023-08-15 13:01:56 +03:00 |
|
Joose Sainio
|
03b91992a3
|
[mtt] fix dual tree
|
2023-08-15 13:01:55 +03:00 |
|
Joose Sainio
|
536c0ff2ef
|
[quant] fix fast coeff cost
|
2023-08-15 13:01:54 +03:00 |
|
Joose Sainio
|
cf5f7658a0
|
[mtt] fix
|
2023-08-15 13:01:53 +03:00 |
|
Joose Sainio
|
1668b65f3f
|
[mtt] fix
|
2023-08-15 13:01:53 +03:00 |
|
Joose Sainio
|
e931c096db
|
[mtt] fix
|
2023-08-15 13:01:52 +03:00 |
|
Joose Sainio
|
c590e5ec73
|
[mtt] also copy top right CU
|
2023-08-15 13:01:51 +03:00 |
|
Joose Sainio
|
a1e7664db3
|
[mtt] temporarily disable zero coeff rdo
|
2023-08-15 13:01:50 +03:00 |
|
Joose Sainio
|
239ee88306
|
[mtt] fix
|
2023-08-15 13:01:49 +03:00 |
|
Joose Sainio
|
1cf1501542
|
[mtt] fix
|
2023-08-15 13:01:48 +03:00 |
|
Joose Sainio
|
924a93b60e
|
[mtt] Only initialize higher depth ctus partially
|
2023-08-15 13:01:48 +03:00 |
|
Joose Sainio
|
274e71dff6
|
[transform] Simplify chroma transform search a bit
|
2023-08-15 13:01:47 +03:00 |
|
Joose Sainio
|
58c6af8c87
|
[mtt] Add function for easily getting all split cu_locs
|
2023-08-15 13:01:46 +03:00 |
|
Joose Sainio
|
cfc6aebe3c
|
[mtt] Remove depth from cu_info_t
|
2023-08-15 13:01:45 +03:00 |
|
Joose Sainio
|
b14f6f98ec
|
[mtt] Completely remove tr_depth
|
2023-08-15 13:00:53 +03:00 |
|
Joose Sainio
|
9a29d9ded3
|
[mtt] remove depth from cbf
|
2023-08-15 13:00:51 +03:00 |
|
Joose Sainio
|
e3dbeda7f7
|
[mtt] remove dependency to depth from deblock
|
2023-08-15 13:00:50 +03:00 |
|
Joose Sainio
|
89af7bda8e
|
[mtt] remove unnecessary depth dependency from split flag
|
2023-08-15 13:00:49 +03:00 |
|
Joose Sainio
|
0b6f666a1b
|
[mtt] remove lfnst dependency to depth
|
2023-08-15 13:00:08 +03:00 |
|
Joose Sainio
|
790b1fad48
|
wip
|
2023-08-15 13:00:07 +03:00 |
|
Joose Sainio
|
6a0864839c
|
[mtt] Actually remove the last width dependency to depth
|
2023-08-15 13:00:06 +03:00 |
|
Joose Sainio
|
dcf879e5ed
|
[mtt] remove all rest usages of deriving width and height from depth
|
2023-08-15 12:59:39 +03:00 |
|
Joose Sainio
|
26dcadc149
|
[mtt] change most if not all of search hierarchy to use cu_loc_t
|
2023-08-15 12:47:11 +03:00 |
|
siivonek
|
0ec16967a1
|
[isp] Fix reference building. When ISP was in use, not enough samples were generated. Uninitialized memory was referenced. Fix some typos.
|
2023-08-14 12:21:30 +03:00 |
|
siivonek
|
b16c404362
|
[isp] Remove some obsolete TODOs and old commented out code.
|
2023-08-14 12:21:30 +03:00 |
|
siivonek
|
95d73116f9
|
[isp] Fix some CI errors. Some const modifiers were discarded.
|
2023-08-14 12:21:29 +03:00 |
|
siivonek
|
90e2a17759
|
[lfnst] Fix LFNST error when MIP enabled.
|
2023-08-14 12:21:28 +03:00 |
|
siivonek
|
7005d222d5
|
[isp] Fix lfnst constraint check when ISP is used. Remove some obsolete comments.
|
2023-08-14 12:21:28 +03:00 |
|
siivonek
|
3c861e4c02
|
[isp] Fix search. Best LFNST and MTS modes were not selected correctly for ISP modes.
|
2023-08-14 12:21:27 +03:00 |
|
siivonek
|
b4cc321349
|
[isp] Fix transform selection when MTS & ISP is used. Wrong transform was selected. Change mts parameter name to better reflect its purpose.
|
2023-08-14 12:21:26 +03:00 |
|
siivonek
|
85f6b00394
|
[isp] Add lfnst asserts. Fix error in MTS search. Fix chroma lfnst index when no coefficients present.
|
2023-08-14 12:21:26 +03:00 |
|
siivonek
|
b9822398a0
|
[isp] Fix lfnst constraint checks when ISP is in use. Add some asserts.
|
2023-08-14 12:21:25 +03:00 |
|
siivonek
|
701257cdd2
|
[isp] Remove unnecessary code from forward dct 32.
|
2023-08-14 12:21:25 +03:00 |
|
siivonek
|
89db34d4e0
|
[isp] Use TR_MAX_WIDTH in ISP checks instead of parameter.
|
2023-08-14 12:21:24 +03:00 |
|
siivonek
|
c4bc2d6b10
|
[isp] Limit ISP search to block size 32. Size 64 is not allowed.
|
2023-08-14 12:21:23 +03:00 |
|
siivonek
|
5713fbff1a
|
[isp] Add ISP checks to search. LFNST can be used with ISP for larger blocks. Transform skip cannot be used with ISP.
|
2023-08-14 12:21:22 +03:00 |
|
siivonek
|
7282534879
|
[isp] Fix CI errors.
|
2023-08-14 12:21:22 +03:00 |
|
siivonek
|
01c4d1ddb0
|
[isp] Fix cabac issues. There are always four transform blocks even if there are only two ISP splits. Fix prediction issues. PDPC filter was applied when it should be disabled. Fix reference building issues. Left reference was built incorrectly for blocks with height 2.
|
2023-08-14 12:21:21 +03:00 |
|
siivonek
|
b8e36bbc4a
|
[isp] Fix storing cbfs for small ISP splits. Fix pdpc filtering. Cannot be used if width or height is less than 4. Fix dct related CI errors.
|
2023-08-14 12:21:20 +03:00 |
|
siivonek
|
99495c331b
|
[isp] Fix some asserts to allow log2_dim 1 block sizes. Fix coefficient group scan order for small dimensions.
|
2023-08-14 12:21:19 +03:00 |
|
siivonek
|
d39fddf0d8
|
[isp] Implement DCT for small blocks.
|
2023-08-14 12:21:19 +03:00 |
|
siivonek
|
910501012f
|
[isp] Fix referene building for depth 2 blocks. Flip horizontal mode dimensions during prediction. Fix reference length during prediction when ISP enabled.
|
2023-08-14 12:21:18 +03:00 |
|
siivonek
|
7ba557af6b
|
[isp] Fix luma cbf writing for ISP splits. Do not write luma cbf if first three splits had luma cbf 0.
|
2023-08-14 12:21:17 +03:00 |
|
siivonek
|
a28e61eff7
|
[isp] Fix CI errors.
|
2023-08-14 12:21:17 +03:00 |
|
siivonek
|
4794104ecc
|
[isp] Fix errors in reference building. Use cubic filter during prediction if ISP enabled.
|
2023-08-14 12:21:16 +03:00 |
|
Joose Sainio
|
662f31d61d
|
[isp] Use correct coordinates for depth 4 chroma tu cost calculation
|
2023-08-14 12:17:36 +03:00 |
|
Joose Sainio
|
08942a5394
|
[tr-skip] fix transform skip flag writing
|
2023-08-14 12:17:35 +03:00 |
|
siivonek
|
a261d4c5b3
|
[isp] WIP
|
2023-08-14 12:17:34 +03:00 |
|
siivonek
|
6340dfe4ce
|
[isp] Fix mistake in pu_loc argument passing, was not used after passing.
|
2023-08-14 12:17:33 +03:00 |
|
Joose Sainio
|
88c33c0489
|
[lfnst] Fix lfnst constraint checking for the new coeff order
|
2023-08-14 12:17:33 +03:00 |
|
Joose Sainio
|
e0e96068cc
|
[lfnst] lfnst is not allowed for transform split
|
2023-08-14 12:17:32 +03:00 |
|
Joose Sainio
|
cb7f9919e3
|
[jccr] Fix jccr coefficient copying
|
2023-08-14 12:17:32 +03:00 |
|
Joose Sainio
|
3e23fd0601
|
[cabac] fix cbf_y context for tr splits
|
2023-08-14 12:17:31 +03:00 |
|
siivonek
|
59292d8808
|
[isp] Add extra logic to reference building to accommodate ISP. Remove some asserts which were invalidated by ISP.
|
2023-08-14 12:17:31 +03:00 |
|
siivonek
|
33cd44f11b
|
[isp] Fix chroma coeff writing for ISP.
|
2023-08-14 12:17:30 +03:00 |
|
siivonek
|
d8d206365c
|
[isp] Fix jccr coeffs.
|
2023-08-14 12:17:29 +03:00 |
|
siivonek
|
7398e58431
|
[isp] Fix coeff cost calculation. Coeff arrays were indexed wrongly.
|
2023-08-14 12:17:29 +03:00 |
|
siivonek
|
d050efcb87
|
[isp] Fix error in last sig coeff function call. Height was not used. Fix cbf writing. Fix transform skip flag writing.
|
2023-08-14 12:17:28 +03:00 |
|
siivonek
|
33ae02aae0
|
[isp] Fix mistake in isp cbf writing. Loop index was increased twice.
|
2023-08-14 12:17:28 +03:00 |
|
siivonek
|
4a21039e23
|
[isp] Fix mistake in function declaration.
|
2023-08-14 12:17:27 +03:00 |
|
siivonek
|
b8506c757c
|
[isp] Convert functions to handle new coeff array order. Add function for getting coeff array subset. Fix assert.
|
2023-08-14 12:17:26 +03:00 |
|
siivonek
|
69dcb04c99
|
[isp] Use temporary coeff array when quantizing coeffs. After deriving coeffs, copy temp coeffs from linear order to correct arrays with cu order.
|
2023-08-14 12:17:26 +03:00 |
|
siivonek
|
0ae71feae4
|
[isp] Fix assert.
|
2023-08-14 12:17:25 +03:00 |
|
siivonek
|
2e8f008de4
|
[isp] Redo call hierarchy to include x, y coordinates.
|
2023-08-14 12:17:24 +03:00 |
|
siivonek
|
10f9b2be26
|
[isp] Keep lfnst constraint up to date during search.
|
2023-08-14 12:16:42 +03:00 |
|
siivonek
|
39f30563c5
|
[isp] Fix chroma width error when writing cu loc. Remove redundant IPS mode checks.
|
2023-08-14 12:16:42 +03:00 |
|
siivonek
|
b53308f258
|
[isp] Fix mistake in setting cbfs. Skip stting if ISP is not used.
|
2023-08-14 12:16:41 +03:00 |
|
siivonek
|
56ebea7358
|
[isp] Set cbfs for isp splits after search. Add helper function for isp split number.
|
2023-08-14 12:16:40 +03:00 |
|
siivonek
|
510798cb3d
|
[isp] Fix mistake in isp cabac write. Intra luma mpm flag bit was checking isp when it did not need to.
|
2023-08-14 12:16:40 +03:00 |
|
siivonek
|
f86dc29ce7
|
[isp] Fix mistake in cost calculation. Remove some commented out code blocks.
|
2023-08-14 12:16:39 +03:00 |
|
siivonek
|
bbb8faea98
|
[isp] Modify encode transform coeff func to handle non-square blocks, use cu_loc_t where possible. Fix mistake in mts idct generic.
|
2023-08-14 12:16:38 +03:00 |
|
siivonek
|
7062697beb
|
[isp] Resolve TODOs. Make scan order tables const.
|
2023-08-14 12:16:37 +03:00 |
|
siivonek
|
93317cafa4
|
[isp] Write isp config bit to sps.
|
2023-08-14 12:16:37 +03:00 |
|
siivonek
|
182d0f4e66
|
[isp] Remove old_scan tables and related asserts. Fix coefficient group indexing.
|
2023-08-14 12:16:36 +03:00 |
|
siivonek
|
f8641f7436
|
[isp] Fix assert. Implement coef cost calculation for isp splits.
|
2023-08-14 12:16:35 +03:00 |
|
siivonek
|
ae0336fdfc
|
[isp] Add non-square block handling to functions.
|
2023-08-14 12:16:34 +03:00 |
|
siivonek
|
031a758d6c
|
[isp] Count isp cbfs.
|
2023-08-14 12:16:01 +03:00 |
|
siivonek
|
75175ee2e2
|
[isp] Fix isp search.
|
2023-08-14 12:16:00 +03:00 |
|
siivonek
|
8d914ce849
|
[isp] Implement coefficient encoding for isp splits. Make get_split_dim non static, it was needed elsewhere after all.
|
2023-08-14 12:15:59 +03:00 |
|
siivonek
|
573ecf80e3
|
[isp] Move can_use_lfnst_with_isp to intra.c. Remove duplicate functions. Move isp related functions from search to intra. Make isp_split_dim static. Move isp related defines from search to intra.
|
2023-08-14 12:15:58 +03:00 |
|
siivonek
|
bcbd952dfd
|
[isp] Add height handling to avx2 reconstruction.
|
2023-08-14 12:15:57 +03:00 |
|
siivonek
|
7c340fd92b
|
[isp] Add height to inverse transform skip.
|
2023-08-14 12:15:56 +03:00 |
|
siivonek
|
318d925028
|
[isp] Add new convert_to_log2 table. Change all instances which used old convert_to_bit table to change dimensions into log2.
|
2023-08-14 12:15:55 +03:00 |
|
siivonek
|
6922157ed3
|
[isp] Fix quantization function calls. Some were not getting height as input.
|
2023-08-14 12:15:54 +03:00 |
|
siivonek
|
50ad91a94e
|
[isp] Modify quantization functions to work with non-square blocks.
|
2023-08-14 12:15:53 +03:00 |
|
siivonek
|
31c8f1356f
|
[isp] Add height to sig coeff group context calculation function.
|
2023-08-14 12:15:53 +03:00 |
|
siivonek
|
936256e750
|
[isp] Fix sig coeff flag context calculation function call. Width & height was swapped.
|
2023-08-14 12:15:52 +03:00 |
|
siivonek
|
9e7f4eac99
|
[isp] Change variable name 'type' to 'color'.
|
2023-08-14 12:15:51 +03:00 |
|