Marko Viitanen
38eafbbf78
[LMCS] initial bitstream writing and LMCS structures
2021-04-30 10:04:41 +03:00
Marko Viitanen
3d9d1930d8
[LMCS] Add commandline option to enable LMCS
2021-04-30 09:51:41 +03:00
Joose Sainio
0cc1bf197f
Add monochrome tests and fix monochrome
2021-04-23 13:50:09 +03:00
Joose Sainio
56f163357b
Fix minor mistake in rewriting the history
2021-04-23 11:06:07 +03:00
Joose Sainio
fda73ded4a
Parameterize chroma qp scaling.
2021-04-23 10:57:30 +03:00
Joose Sainio
09b738061c
Fix deblocking
2021-04-23 10:57:30 +03:00
Joose Sainio
4f0ce14e53
Make internal symbols static
2021-04-23 10:57:30 +03:00
Joose Sainio
a12f99b7a3
Fix deblocking for luma
2021-04-23 10:57:29 +03:00
Joose Sainio
2ab005692d
Enable 4x4 intra CUs
2021-04-23 10:57:29 +03:00
Joose Sainio
d5a62c96b0
Properly implement chroma filtering
2021-04-23 10:57:29 +03:00
Joose Sainio
e521a59cd5
Perform deblocking on 4x4 grid instead of 8x8
2021-04-23 10:57:29 +03:00
Joose Sainio
1aaa95601c
Merge remote-tracking branch 'remotes/kvz_github/master' into Fix-monochrome
...
# Conflicts:
# .gitlab-ci.yml
# build/kvazaar_lib/kvazaar_lib.vcxproj.filters
# src/cfg.c
# src/encoder.h
# src/kvazaar.h
# src/rdo.c
2021-04-23 10:56:50 +03:00
Joose Sainio
764d23cdf5
Update entropy tables and correct order
2021-04-23 10:54:11 +03:00
Joose Sainio
119f80054a
Update get_ic_rate
2021-04-23 10:53:20 +03:00
Joose Sainio
15b710f4f6
update calc_last_bits
2021-04-23 10:52:50 +03:00
Joose Sainio
27e46ab7f4
ctx_set was incorrect for second iteration of coefficient level estimation
2021-04-23 10:51:52 +03:00
Joose Sainio
e8eab326fb
Update context selection to match VVC
2021-04-23 10:51:01 +03:00
Joose Sainio
1fd583eae0
go_rice_param calculation fix
2021-04-23 10:49:31 +03:00
Joose Sainio
8049ebb597
Fix header writing for monochrome. WIP: checksum header still incorrect
2021-03-17 13:01:26 +02:00
Joose Sainio
bdcf2210ed
reverse
2021-03-17 08:23:07 +02:00
Joose Sainio
7929c4bfe5
Test c_lambda instead of CHROMA_MULT
2021-03-17 08:22:38 +02:00
Joose Sainio
b2076d3b39
Enable chroma scaling
...
WIP: user defined scaling array
2021-03-16 10:31:26 +02:00
Joose Sainio
412781db41
[scalinglist] Fix quant-generic
2021-03-09 10:42:40 +02:00
Joose Sainio
21bc9aa3c2
[scalinglist] Fix memory leak
2021-03-09 10:04:11 +02:00
Joose Sainio
30e573c261
[scalinglist] WIP: Update scalinglist for VVC
...
Seems to work when rdoq is enabled but not when it is disabled
2021-03-09 09:51:49 +02:00
Ari Lemmetti
dad3d6818e
Only read left and right border pixels if necessary
2021-03-08 22:36:10 +02:00
Ari Lemmetti
b72ab583b4
Handle "don't care" rows in the end separately
2021-03-08 22:36:09 +02:00
Ari Lemmetti
33295bf350
Use AVX2 luma interpolation for SMP and AMP as well
2021-03-08 22:36:09 +02:00
Ari Lemmetti
7ce68761c2
Add a reminder to fix a rare case for bipred
2021-03-08 22:36:09 +02:00
Ari Lemmetti
475f1d79d5
Add some defines for important interpolation related sizes
2021-03-08 22:36:09 +02:00
Ari Lemmetti
4314f3a9a7
Rename some interpolation functions and strategies for consistency
2021-03-08 22:36:08 +02:00
Ari Lemmetti
5a70b49f69
Require 64-bit build for AVX2 interpolation filter functions
2021-03-08 22:36:08 +02:00
Ari Lemmetti
5631651469
Remove unused functions and variables
2021-03-08 22:36:08 +02:00
Ari Lemmetti
d8e7aac380
Do not use nonstandard extension for struct initialization.
2021-03-08 22:36:07 +02:00
Ari Lemmetti
e38219e489
Fix epol_func signature and function definition
2021-03-08 22:36:07 +02:00
Ari Lemmetti
7e6ba9750f
Add new AVX2 ip filters for chroma
2021-03-08 22:36:07 +02:00
Ari Lemmetti
3476fc62c7
Fix parameter to signed
2021-03-08 22:36:06 +02:00
Ari Lemmetti
e572066e46
Add new AVX2 vertical ip filter for pixel precision
2021-03-08 22:36:06 +02:00
Ari Lemmetti
9e4b62a891
Use the new horizontal filter for pixel precision as well
2021-03-08 22:36:06 +02:00
Ari Lemmetti
2175023843
Relocate function
2021-03-08 22:36:06 +02:00
Ari Lemmetti
f5b0e3c52b
Add new AVX2 horizontal ip filter capable of every luma PB
2021-03-08 22:36:05 +02:00
Ari Lemmetti
d9a3225ae5
Add new AVX2 vertical ip filter for high-precision
2021-03-08 22:36:05 +02:00
Ari Lemmetti
84222cf3e7
Replace old block extrapolation with more capable one.
...
Separate paddings for different directions can be now specified.
2021-03-08 22:36:04 +02:00
Jaakko Laitinen
845902062c
Fix warning and limit intra qp offset to -3
2021-03-04 18:08:59 +02:00
Marko Viitanen
29dee4e32a
[rdoq] implement more parts of rdoq like in VTM related to reg_bins value usage
2021-02-26 22:11:47 +02:00
Marko Viitanen
7dcf00d536
[rdoq] Change kvz_get_coeff_cost() to match current VTM
2021-02-26 20:43:33 +02:00
Marko Viitanen
467a3d97cc
[rdoq] Update contexts to use correct chroma model
2021-02-26 20:26:08 +02:00
Marko Viitanen
6544c25daf
[rdoq] improve the cost calculations and clean up unused code
2021-02-26 20:23:06 +02:00
Marko Viitanen
d6379c02e0
[rdoq] implement kvz_get_ic_rate correct bit values
2021-02-26 20:23:06 +02:00
Marko Viitanen
3c75500cd4
Fix PSNR calculation, broken after the introduction of frame padding
2021-02-26 20:20:51 +02:00
Marko Viitanen
c6baa8ad62
[rdoq] rename some contexts and add gt2 context template, change kvz_context_get_sig_coeff_group width -> cg_width
...
* RDOQ is not working as it should, but no longer tries to access incorrect memory locations
2021-02-25 13:41:47 +02:00
siivonek
bf0bf73665
Fix mistake in define.
2021-02-16 20:21:33 +02:00
siivonek
6f455f29cc
Add MINGW64 to define. Try to fix tsan test path error to suppressions.txt.
2021-02-16 15:44:18 +02:00
siivonek
9a65617a34
Disable thread exit call in encmain when MINGW is used. This should fix the issue with media auto-build suite.
2021-02-15 14:47:18 +02:00
Marko Viitanen
e05dcdb193
Enable sign hiding in quant_avx2 and fix a bug in kvz_encode_coeff_nxn_generic()
2021-02-12 16:40:28 +02:00
Marko Viitanen
113b94f5e1
Add sh_sign_data_hiding_used_flag to slice header
2021-02-12 14:19:56 +02:00
Marko Viitanen
79c36f6aeb
Enable RDOQ and sign hiding
2021-02-12 13:24:02 +02:00
Arttu Makinen
7098a94a6f
Implemented implicit MTS.
...
Added selection of implicit MTS to command parameters.
Updated the transform selection to support implicit MTS.
2021-02-11 15:11:15 +02:00
Arttu Mäkinen
8f34685a8f
Merge branch 'master' into 'mts'
...
# Conflicts:
# src/cfg.c
# src/kvazaar.h
2021-02-10 13:05:18 +02:00
Arttu Makinen
c5570abe1b
Removed 'emt' variable from cu_info_t and changed 'emt' globally to 'mts' for consistency.
2021-02-10 12:08:05 +02:00
Arttu Makinen
d0b7dd95f7
MTS works on intra mode.
...
Fixed usage of MTS constraints.
Fixed DCT8 transforms.
Added sorting function of MTS modes with intra modes and costs to search.c.
2021-02-10 11:01:58 +02:00
Arttu Makinen
2e7c342645
Implemented DCT2, DST7, and DCT8 transforms, and search for selecting transform for MTS. Using MTS results mismatch for luma component.
2021-02-02 11:09:43 +02:00
Marko Viitanen
c6b3065e7c
Merge branch 'deblocking_fix' into 'master'
...
Deblocking fix
See merge request cs/ultravideo/vvc/uvg266!1
2021-01-26 14:18:34 +02:00
Arttu Makinen
b9c3336f0e
MTS bitstream encoding added for intra. Work with depths 0-3.
2021-01-18 20:44:36 +02:00
Jaakko Laitinen
1c6bef2514
Fix luma large block deblocking bug
2021-01-14 17:22:12 +02:00
Arttu Makinen
65cbee85d7
Fix for sad_tests. Forced intra mode removed. Define for frame padding added.
2021-01-14 14:30:50 +02:00
Jaakko Laitinen
f19c049db7
Fix luma hor edge rightmost pixel filtering
2021-01-13 18:04:56 +02:00
Pauli Oikkonen
fcc2c1fa7b
return-type error does not know that you don't return from assert(0)
2021-01-12 13:28:55 +02:00
Pauli Oikkonen
fa8cfb92e8
Maybe this would work with VC++
...
Our threadwrapper does not support PTHREAD_MUTEX_INITIALIZER, apparently
that's a toughie to implement on Windows or something, dunno. Use
dynamic initialization instead, then.
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
20758a77e3
document fastrd measurement tools
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
0e07308ea5
new weights
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
5827ecc5a6
this little piggy wasn't on board, obviously..
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
643e70d4ca
also move the readme file :^)
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
1c1807f80b
move rdcost stuff into a separate directory
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
a37095b061
new weights using new scripts
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
17bedc9751
script to average out results by qp over sequences
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
ab13018b7c
tidy it up
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
8aa9a29e24
what if this were to work now
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
4deed04eb9
you know what, fread returns number of elements, not bytes
2021-01-11 18:22:53 +02:00
Pauli Oikkonen
c89477bb41
Ditto for 2nd part of least squares
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
3dd4f0e00b
Process some fault conditions in filter_rdcosts
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
98a082cdcd
last fixes to extract_rdcosts
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
b26e9c68c8
extract rdcosts works with the block qp fix
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
40ae353820
Fix RD sampling to take the block QP into account
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
03087fb44c
Fix RDO sampling to work thru a CLI parameter, implement accuracy check
...
TODO: write into encoder->fastrd_learning_outfile instead of stdout.
It's a toughie tho, because fwrite takes in FILE* instead of const FILE*
but the encoder_control_t is passed as a const.
2021-01-11 18:22:52 +02:00
Pauli Oikkonen
33dd9c95cd
Tool to extract RDO bitrates
2021-01-11 18:22:52 +02:00
Arttu Makinen
46ed459790
Removed functions from alf.h that are not used outside of alf.c. Rearranged functions in alf.c.
2021-01-11 10:42:44 +02:00
Arttu Makinen
1ae1d7e630
Cast couple more ALF functions to static.
2021-01-08 12:10:40 +02:00
Arttu Makinen
15816125aa
Cast ALF functions to static or set them to have prefix "kvz_".
2021-01-08 12:03:22 +02:00
Jaakko Laitinen
ecdb1c4dce
Fix chroma clip range bug
2021-01-07 16:06:03 +02:00
Jaakko Laitinen
88b837c4f0
Fix more chroma deblocking issues
2021-01-06 19:06:14 +02:00
Arttu Makinen
2786e8f0e2
Fix of problems that appeared with rebase.
2021-01-05 11:43:15 +02:00
Jaakko Laitinen
b96753961c
Fix some more chroma bugs
2021-01-02 20:59:55 +02:00
Jaakko Laitinen
c71a0d1e6f
Fix most(?) chroma issues
2021-01-01 20:10:08 +02:00
Jaakko Laitinen
c736837ca7
Fix luma deblocking
2020-12-31 19:23:33 +02:00
Arttu Makinen
e06759eb6e
Fixed a bug of ALF failing when CC-ALF was not enabled. Added ALF to README.md parameters.
2020-12-30 16:27:15 +02:00
Arttu Makinen
75b51c1d27
Bug fix of division with zero, initialization of APS, and missing "!".
2020-12-30 16:27:07 +02:00
Arttu Makinen
df375a055e
Small changes with VTM version 11.0.
2020-12-30 16:26:59 +02:00
Arttu Makinen
7109313161
Added forgotten memory release.
2020-12-30 16:26:50 +02:00
Arttu Makinen
b17e26511f
Removed/moved the last global variables from ALF.
2020-12-30 16:26:49 +02:00
Arttu Makinen
f5556a5d69
Moved cabac_estimator from globals to alf_info_t.
2020-12-30 16:26:30 +02:00
Arttu Makinen
ffdca81dca
ALF frame buffer moved.
2020-12-30 16:26:22 +02:00
Arttu Makinen
a3998450d0
Most of the remaining globals removed/moved.
2020-12-30 16:26:14 +02:00
Arttu Makinen
35233d2e17
Multiple global arrays placed in a struct of arrays.
...
Also g_ctb_distortion_unfilter and g_aps_id_start removed.
2020-12-30 16:25:54 +02:00
Arttu Makinen
aed4d29c79
Continuation of removal/moving of ALF globals.
...
Removed/moved globals: g_ctu_enable_flag, g_ctu_alternative, g_ctu_enable_flag_tmp, g_ctu_alternative_tmp.
2020-12-30 16:25:40 +02:00
Arttu Makinen
335ce2bdda
Moving ALF globals to alf_info struct inserted in videoframe_t.
...
g_alf_covariance and g_alf_covariance_frame moved.
2020-12-30 16:25:18 +02:00
Arttu Makinen
76cf8a16d9
Fixed couple of memory problem bugs.
2020-12-30 16:25:01 +02:00
Arttu Makinen
0914864300
Bug fix for reading alf type to cfg.
2020-12-30 16:24:59 +02:00
Arttu Makinen
9d56d6444d
Removed filter shape/type from variables and functions.
...
Filter shape/type size was only used and was always defined as 1.
2020-12-30 16:24:50 +02:00
Arttu Makinen
218d5b51d3
Cleaning ALF code.
2020-12-30 16:24:24 +02:00
Arttu Makinen
420ee4cc21
Changed alf_enabled and alf_cc_enabled flags into one alf_type enum as in sao.
2020-12-30 16:23:56 +02:00
Arttu Makinen
2b62b91589
Added CC ALF parameter for encoding.
2020-12-30 16:22:02 +02:00
Arttu Makinen
0e74bfb2a8
CC ALF now works properly.
2020-12-30 16:22:01 +02:00
Arttu Makinen
fc39b311bd
Added fixing of pixels outside of the actual frame before CC ALF.
2020-12-30 16:22:01 +02:00
Arttu Makinen
99745c2e5a
Added writing of CC ALF flag. Couple of bug fixes.
2020-12-30 16:22:00 +02:00
Arttu Makinen
1471448218
Bug fixes in derive_cc_alf_filter and get_blk_stats_cc_alf.
2020-12-30 16:22:00 +02:00
Arttu Makinen
f7fe8d9a27
Added more CC ALF functions.
...
Currently not working.
2020-12-30 16:21:59 +02:00
Arttu Makinen
9ed5169919
Finished functions get_blk_stats_cc_alf and calc_covariance_cc_alf for CC ALF.
2020-12-30 16:21:29 +02:00
Arttu Makinen
bf8bb62e50
Got rid of fair amount of global variables.
2020-12-30 16:21:28 +02:00
Arttu Makinen
7846796a4e
Removed #define FULL_FRAME.
2020-12-30 16:20:25 +02:00
Arttu Makinen
7bfb1ca6b4
Removal of useless comments.
2020-12-30 16:19:57 +02:00
Arttu Makinen
529bdb4dd2
Modify APS header writing.
2020-12-30 16:19:47 +02:00
Arttu Makinen
ee70bcfaec
Fixing warnings.
2020-12-30 16:19:07 +02:00
Arttu Makinen
d7eafc391f
Fixing uninitialized parameters.
2020-12-30 16:18:24 +02:00
Arttu Makinen
36ffdcaf3f
Disable output of debug stats.
2020-12-30 16:18:09 +02:00
Arttu Makinen
98768061db
Adding CC ALF.
2020-12-30 16:18:08 +02:00
Arttu Makinen
da04fffaec
Updated the creating of ALF parameters and init for them.
2020-12-30 16:17:54 +02:00
Arttu Makinen
bfa77e35c3
Fixed a bug where reconstruction for ALF was called multiple times for no reason.
...
Modified reconstruction of pixels after ALF search.
2020-12-30 16:17:43 +02:00
Arttu Makinen
bd292dab16
Fixed coding of headers for inter coding with ALF.
2020-12-30 16:15:12 +02:00
Arttu Makinen
26dc5b8c4e
Multiple APSs can now be signaled.
...
Can't test usage of multiple APSs properly because inter coding doesn't work.
2020-12-30 16:13:56 +02:00
Arttu Makinen
4ffb0b71a6
Chroma filtering works.
...
Also some code cleaning.
2020-12-30 16:13:25 +02:00
Arttu Makinen
a95fd73668
At least one APS can be signaled.
...
Problem with APS was in encoder_state-bitstream.c.
Cleaning of code.
2020-12-30 16:12:56 +02:00
Arttu Makinen
d7126520b2
Moving param_set_map from slices to cfg.
...
Bug fix in kvz_alf_encoder_ctb.
2020-12-30 16:12:38 +02:00
Arttu Makinen
c55a2a04e8
Bug fix in kvz_alf_encoder.
...
New bugs appeared with this fix.
2020-12-30 16:12:17 +02:00
Arttu Makinen
8aa91f320a
Bug fixes and cleaning.
2020-12-30 16:11:36 +02:00
Arttu Makinen
bfba8d43cb
Working on to get APS working for ALF.
2020-12-30 16:10:01 +02:00
Arttu Makinen
b3ecc755e2
ALF search is now executed for full frame. Works for only 1 frame.
...
Checksum matches.
APSs are not used currently.
#define FULL_FRAME in alf.h is set to 1 in order to use ALF for full frame.
#define FULL_FRAME 0 produces working bitstream but checksum doesn't match.
2020-12-30 16:08:46 +02:00
Arttu Makinen
94787acb73
Divided encoder_state_worker_encode_lcu -function in encoderstate.c into encoder_state_worker_encode_lcu_search and encoder_state_worker_encode_lcu_bitstream.
...
ALF off. No changes in bitstream.
2020-12-30 16:07:46 +02:00
Arttu Mäkinen
ec62ed89cb
LCUs now have mismatched only on boundaries.
...
Fixed a bug in alf.c line 5451.
Modifications to copying the boundary pixels of CTU.
2020-12-30 16:07:45 +02:00
Arttu Mäkinen
f202aa43fa
WIP Updating VTM8.2 to VTM10.0.
...
Small update to ALF cabac flags.
Minor variable definition updates.
2020-12-30 16:07:44 +02:00
Arttu Mäkinen
bc90b731a5
ALF updated to VTM8.2. Checksum doesn't match.
...
ALF uses currently only ready defined coefficients, not APSs.
Produces a valid bitstream, but checksum doesn't match.
CC ALF is disabled.
2020-12-30 16:06:59 +02:00
Arttu Mäkinen
2f80216514
Some cleaning and updating.
...
Set to use only existing filters rather than signal APS.
2020-12-30 16:02:01 +02:00
Arttu Mäkinen
a430d48669
ALF works now with VTM7.0 as in VTM6.1.
...
VTM properly decodes bitstream from kvazaar but the checksum doesn't match.
Couple hard coded values needed for this in function "kvz_encode_alf_bits".
2020-12-30 15:59:08 +02:00
Arttu Mäkinen
7250f4549b
Merge fixes.
2020-12-30 15:12:32 +02:00
Arttu Mäkinen
21a4751875
Works with VTM decoder with one frame with one hard coded value.
...
APS NAL unit type writing added.
Bug fixes.
WIP.
2020-12-30 15:11:17 +02:00
Arttu Mäkinen
9cad95c94c
Bug fixes.
...
WIP.
2020-12-30 15:09:13 +02:00
Arttu Mäkinen
09c68d9de6
Outputs valid frame with kvazaar. Still problems with cabac when decoding with VTM.
...
Decided to use buffers that were added in last commit.
Some small fixes and adjustments.
WIP.
2020-12-30 15:09:12 +02:00
Arttu Mäkinen
2cac901cca
Testing different kind of buffer for alf image fulldata.
...
WIP
2020-12-30 15:09:12 +02:00
Arttu Mäkinen
feb201986a
Changed to process one CTU at a time rather than all CTUs.
...
WIP
2020-12-30 15:09:11 +02:00
Arttu Mäkinen
b04bb66160
Adjustments and cleaning.
...
WIP
2020-12-30 15:09:10 +02:00
Arttu Mäkinen
c76c445142
Cabac/ctx calculation added.
...
Bug fixing and adjusting.
WIP
2020-12-30 14:32:01 +02:00
Arttu Makinen
ade4fc4061
Update of contexts of ALF.
...
WIP
2020-12-30 14:32:00 +02:00
Arttu Makinen
ebb99a7223
Changed 'width's to 'stride's, because added more pixels to 'fulldata'.
...
Also some small fixes and changes.
Checksum correct in luma.
WIP
2020-12-30 14:30:47 +02:00
Arttu Makinen
377aa989ab
Updated to VTM6.1.
...
Done according to all #ifs enabled
2020-12-30 14:27:15 +02:00
Arttu Makinen
0fbbf1a7e2
Small fixes/adjustments
2020-12-30 14:25:58 +02:00
Arttu Makinen
98a8e78e93
avx2/encode_coding_tree-avx2.c update, because it caused errors
2020-12-30 14:25:16 +02:00
Arttu Makinen
ed76650fa5
Updating to VTM6.0
2020-12-30 14:25:09 +02:00
Arttu Makinen
a24f49c286
Doesn't crash anymore during debug. Added new allocator for fulldata in kvz_picture.
2020-12-30 14:24:16 +02:00
Arttu Makinen
2b7a8af23a
Crashes now in kvz_image_free.
2020-12-30 14:22:38 +02:00
Arttu Makinen
05495bb555
Not working. All the functions done.
...
Heap corruption occur during debugging.
2020-12-30 14:22:30 +02:00
Arttu Mäkinen
236224dbb9
Broken version with header mismatch
2020-12-30 14:07:34 +02:00
Arttu Mäkinen
06233b5d3b
added alf parameter to cli
2020-12-30 14:02:58 +02:00
Jaakko Laitinen
71751c3770
Fix max filter size derivation
2020-12-29 17:57:35 +02:00
Jaakko Laitinen
6a8d73252a
Fix runtime errors
2020-12-28 16:41:00 +02:00
Jaakko Laitinen
85be89a85c
Fix compilation errors
2020-12-28 15:20:30 +02:00
Jaakko Laitinen
95ff22f0db
Finish max filter length fixes
2020-12-28 14:26:36 +02:00
Jaakko Laitinen
13e605153a
Fix bugs
2020-12-22 19:11:47 +02:00
Jaakko Laitinen
50e9acd3f4
Add max filter length derivation
2020-12-21 18:47:02 +02:00
Arttu Makinen
bc8507cc8d
MTS context.
2020-12-18 18:35:11 +02:00
Arttu Makinen
fd2f73b460
MTS headers and commands.
2020-12-18 17:40:47 +02:00
Jaakko Laitinen
7a71b700fb
Add chroma deblock filtering
2020-12-18 11:06:41 +02:00
Marko Viitanen
0c5e1db0fa
Fix wpp chroma bug
2020-12-15 22:59:22 +02:00
Marko Viitanen
071fe7fd51
Limit the top-right intra references when wpp is turned on
...
Chroma hash still fails.
2020-12-15 22:33:32 +02:00
Marko Viitanen
6146610ec8
Fix the wpp sync point to be the first LCU
2020-12-15 14:51:46 +02:00
Jaakko Laitinen
78be0ccd05
Fix chroma deblocking logic
2020-12-15 14:10:09 +02:00
Marko Viitanen
c07a56179f
Fix Hash SEI message for VTM11.0
2020-12-15 13:47:28 +02:00
Arttu Makinen
30c4065dc0
Headers for threading.
2020-12-15 13:04:39 +02:00
Jaakko Laitinen
6128db961a
Finish up large block filtering
2020-12-11 19:34:56 +02:00
Jaakko Laitinen
976d1c8812
Start implementing large block filtering
2020-12-10 18:03:18 +02:00
Jaakko Laitinen
33cea17484
Add logic for large block filtering
2020-12-09 19:10:38 +02:00
Jaakko Laitinen
d3d55933b2
Finish up strong filtering condition check
2020-12-08 18:38:05 +02:00
siivonek
e833354cdd
Merge branch 10-bit-assert-fix
2020-12-07 20:36:50 +02:00
Jaakko Laitinen
5a90deb678
Add initial max filter length and large block stuff
2020-12-07 18:54:43 +02:00
Jaakko Laitinen
03dade8246
Prepare for large blocks
2020-12-04 18:31:48 +02:00
Jaakko Laitinen
7b0b864947
Fix mvd thresholds and tc/beta index calculations
2020-12-04 15:54:40 +02:00
Jaakko Laitinen
8f3de705eb
Add todo list of things to check
2020-12-01 13:53:52 +02:00
Pauli Oikkonen
be19fd996b
Add default value for fast coeff table filename
...
..oops
2020-11-02 14:02:51 +02:00
Pauli Oikkonen
46301e9857
Document the --fast-coeff-table option
2020-10-29 15:23:26 +02:00
Pauli Oikkonen
816789c9f4
Allow fast coeff weights to be read from a file
2020-10-29 15:22:51 +02:00
Pauli Oikkonen
6799019db0
Move fast coeff table to transform.h
...
Guess this is a more logical place for it
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
4712ce5f59
Round the fast coeff result instead of flooring
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
0fb09c9920
New filtered coeff weight by QP values
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
9bf0cb27b1
Constrain fast cost estimation to QPs we have weights for
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
24d487f553
New weights for 12 <= QP <= 42
...
Trained using MSU ultrafast settings now
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
3e1c6d84b8
Fix issues in fast coeff estimation
...
Allow weight table to start from nonzero QP, and round weights to Q8.8
instead of flooring them
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
5f91bda762
Use newer data for fast coeff cost estimation
...
Same training dataset, but this time only buckets 0...3 were used to
approximate the function, no sign/cg width bucket.
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
2abd733199
Use unsigned min() to correctly clip -32768
...
If a coeff happens to be -32768 (0x8000), its 16-bit abs() is also
0x8000. It should ultimately be clipped to 3, so interpret absolute
values as unsigned instead to make that happen.
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
b93b90c0d7
Implement new fast coeff cost estimator in AVX2
2020-10-29 15:20:27 +02:00
Pauli Oikkonen
2f74a112b3
Try first lookup table based fast coeff estimation
2020-10-29 15:20:27 +02:00
Marko Viitanen
2db3a07b14
Prevent cu_sig_model_chroma array from being indexed over the limit
2020-10-13 14:14:57 +03:00
Marko Viitanen
f4948dda6f
Fix array size for bdpcm_mode[]
2020-10-13 12:51:20 +03:00
Marko Viitanen
9e3e8f51f6
Change kvz_g_tc_table_8x8 from uint8_t to uint16_t to fit all the values
2020-10-13 12:05:27 +03:00
Marko Viitanen
26f4f45c6d
Use correct pred_mode cabac models -> fixes inter cabac bits
2020-10-13 12:04:31 +03:00
Marko Viitanen
5a6806cbf7
[CI] Limit testing parameters to those that work
2020-10-09 09:37:15 +03:00
Marko Viitanen
3c7eb55292
Disable output of cabac debug when in "count only" mode
...
- Some code cleanup
2020-10-09 08:45:43 +03:00
Marko Viitanen
fa25621c77
Force certain intra modes off
2020-10-09 08:44:40 +03:00
Marko Viitanen
54b8fd054d
Fix Chroma QP scaling issue
2020-10-02 15:40:23 +03:00
Marko Viitanen
11229997b6
Fix NAL header layer_id
2020-10-01 11:10:40 +03:00
siivonek
bc1206a4d3
Define qp_delta_min & max in global.h instead of calculating them locally.
2020-09-29 13:46:27 +02:00
Marko Viitanen
ac2032eb65
Fixing P/B frame headers and debug output formatting
2020-09-28 14:58:07 +03:00
Marko Viitanen
bddfb47a55
Merge remote-tracking branch 'remotes/kvazaar_github/master'
2020-09-25 11:49:11 +03:00
Marko Viitanen
551a3991cf
Cleanup headers
2020-09-24 09:31:44 +03:00
siivonek
0f3ef786b9
Modify delta QP range assert so it will work with any valid bit depth. Modify VAQ code so it will clip the QP to a proper range which is dependent on bit depth
2020-09-22 20:15:23 +02:00
siivonek
fe6f93a951
Fix delta QP range check assert. Add separate asserts based on bit depth.
2020-09-22 20:15:22 +02:00
Marko Viitanen
449975b0fb
Fixed cubic filter usage in intra angular modes
2020-09-21 14:58:34 +03:00
Joose Sainio
8143ab971c
Merge branch 'stats-files'
...
# Conflicts:
# src/cfg.c
# src/cli.c
# src/kvazaar.h
2020-09-16 09:25:00 +03:00
Joose Sainio
1c06bd7f3d
Fix POC to be correct for all GOPs and Intra periods, fix issue with vaq
2020-09-14 14:25:48 +03:00
Sami Ahovainio
4d87fb2397
fixed potential out of bounds iteration
2020-09-10 12:59:39 +03:00
Sami Ahovainio
5d521a2444
Added option to force yuv as file format and made the options and file endings case insensitive
2020-09-09 16:05:59 +03:00
Joose Sainio
3fb8b7ebc6
Add --stats-file-prefix option
...
When the option is defined with an option four files prefixlambda.txt,
prefixqp.txt, prefixdist.txt, and prefixbits.txt that have the corresponding
data for each ctu. This is a debug feature.
2020-09-09 12:35:47 +03:00
Sami Ahovainio
84cabd9c20
Fixed sign match
2020-09-07 15:39:31 +03:00
Sami Ahovainio
d691849594
Added frame header reading for both read and seek functions
2020-09-07 15:31:08 +03:00
Sami Ahovainio
cbcee67821
y4m start header parsing ready
2020-09-07 15:31:07 +03:00
Joose Sainio
c10b841e7c
Merge remote-tracking branch 'remotes/origin/fix-sao-parameter' into master
2020-09-07 13:10:36 +03:00
Joose Sainio
da09d49890
Remove optionality from --sao
...
SAO parameter was optional which caused that if one wants to pass argument
one needs to use "=" which is confusing since this is not required for any
other parameter
2020-09-07 12:35:40 +03:00
Pauli Oikkonen
3f7f0d7ed7
Allow bit depth to be defined from the outside
...
For a 10-bit build, just use:
env CFLAGS="-DKVZ_BIT_DEPTH=10" ./configure && make clean && make
2020-09-02 17:55:22 +03:00
Pauli Oikkonen
780da4568a
Exclude 8-bit-only code from 10-bit builds and use uint8_t instead of kvz_pixel for code that assumes 8-bit pixels
2020-09-02 17:46:33 +03:00
Pauli Oikkonen
31ef4e4216
Fix ml functions to accept kvz_pixel*, not uint8_t*
2020-09-02 17:46:33 +03:00
Marko Viitanen
574c4d06ee
Fix use of log2_cg_size in coeff coding -> smaller blocks also decoded correctly
2020-08-27 18:26:16 +03:00
Marko Viitanen
b3f3a9eae6
Add two EOS NAL units at the end of each picture to make intra sequence work
2020-08-25 15:30:21 +03:00
Marko Viitanen
b7638172ca
Use continuous POC for all intra and add aud_irap_or_gdr_au_flag
2020-08-25 11:53:55 +03:00
Marko Viitanen
b53b53ed09
Fixed SAO headers, SAO produces valid output
2020-08-20 15:37:29 +03:00
Marko Viitanen
b4907e6337
Fix deblocking headers and some cleanup, deblocking does not produce valid output
2020-08-20 15:25:18 +03:00
Arttu Mäkinen
4da90b3722
Update of contexts.
2020-08-17 18:18:35 +03:00
Arttu Mäkinen
232332dc5f
Update of contexts.
2020-08-17 14:23:26 +03:00
Marko Viitanen
2fc8558926
Set correct profile, level and inter flags in IDR
2020-08-17 11:51:57 +03:00
Marko Viitanen
0f8ada02c4
Fix VPS writing
2020-08-17 11:26:09 +03:00
Arttu Mäkinen
da9f542209
WIP updating VTM8.2 to VTM10.0rc
2020-08-17 10:27:03 +03:00
Joose Sainio
faf5cc858d
Merge branch 'fix-lp-gop-rc'
2020-06-25 09:41:57 +03:00
Joose Sainio
138651ee85
Fix the bit and frame counts for calculating the gop allocation
...
Additionally dynamically adjust the smoothing window if there are rapid changes
2020-06-24 15:26:54 +03:00
Ari Lemmetti
f8ff6dd567
Merge pull request #262 from jbeich/truncate-freebsd
...
Unbreak build on FreeBSD
2020-06-22 18:08:01 +03:00
Ari Lemmetti
d1abf85229
Add MV constraint check to motion estimation start point
2020-06-01 23:51:38 +03:00
Marko Viitanen
20b66c9949
Sync to VTM 8.2 and add separate height to last_sig coding
2020-04-29 08:52:38 +03:00
Jan Beich
1fa69c705d
Rename truncate() from 30ce461d98
to avoid conflict with POSIX version
...
strategies/avx2/dct-avx2.c:55:23: error: static declaration of 'truncate' follows non-static declaration
static INLINE __m256i truncate(__m256i v, __m256i debias, int32_t shift)
^
/usr/include/stdio.h:448:6: note: previous declaration is here
int truncate(const char *, __off_t);
^
2020-04-22 16:09:42 +00:00
Ari Lemmetti
9753820b3a
Update version to 2.0.0
2020-04-22 01:03:36 +03:00
Ari Lemmetti
40e81f3243
Update preset tables. Update docs.
2020-04-22 01:03:21 +03:00
siivonek
54f438a75c
Update VAQ help text. Update docs. Change some lingering tabs to spaces.
2020-04-20 16:52:07 +02:00
Marko Viitanen
86d76b19a4
Fix intra neighboring block selection and clean some unused code
2020-04-16 14:12:40 +03:00
Marko Viitanen
27b4dd50f8
Fix picture header to code Inter frame
2020-04-14 08:24:11 +03:00
Ari Lemmetti
f31dddc019
Bypass inverse quantization and inverse transform when trying early skip
2020-04-10 16:02:09 +03:00
Pauli Oikkonen
fbdb1e2d15
Add correct path to sao_shared_generics.h in makefile
2020-04-08 19:27:12 +03:00
Pauli Oikkonen
8617530b13
Use _mm_store_epi64 instead of _mm_cvtsi128_si64
...
Fix 32-bit builds that tend to lack the cvt intrinsic. Hope it will be
optimized to a movq r64, xmm on modern platforms though
2020-04-07 23:51:54 +03:00
Pauli Oikkonen
a82966c0f5
Fix lacking _mm256_cvtss_f32 intrinsic on VS
...
Cast __m256 into __m128 first, the XMM variant of the intrinsic has been
around for a long enough time to be supported
2020-04-07 22:38:10 +03:00
Marko Viitanen
27ffba2c9c
Fix terminating bit condition at the end of the slice
2020-04-07 15:30:02 +03:00
Marko Viitanen
e737a878a6
Fix split flags and remove an extra terminating bit
2020-04-07 09:57:30 +03:00
Joose Sainio
c369ff8873
Fix a potential division by zero in a floating point operation
...
When C is calculated with K if the value of K is not clipped before in some
cases it is possible that K gets such a large negative value that bpp^K is
rounded to zero. In real-life cases this is extremely rare and clipping
beforhand has very little to no effect.
Also remove commented debug prints
2020-04-06 11:05:49 +03:00
Ari Lemmetti
901c25c0c8
Merge branch 'vaq'
2020-04-03 19:51:17 +03:00
Ari Lemmetti
51451be5ef
Handle cases where the number of pixels is not divisible by 32
2020-04-03 19:37:47 +03:00
siivonek
ee544304f1
Make function static to not mess up tests.
2020-04-03 15:22:34 +02:00
siivonek
e5267f7706
Fix define for use with Visual Studio.
2020-04-03 15:11:01 +02:00
siivonek
9e34369304
Merge branch 'vaq' of https://gitlab.tut.fi/TIE/ultravideo/kvazaar into vaq
2020-04-03 12:35:04 +02:00
siivonek
d025977949
Clamp edge lcu pixels if dimensions are not 64 divisible.
2020-04-03 12:33:14 +02:00
Pauli Oikkonen
addc1c3ede
Fix warning about potentially unused hsum_8x32b
...
There's a lot of alternative options available, such as making it
globally visible with a kvz_ prefix, force inlining it, or anything.
This could be good too, hope it won't be compiled at all to translation
units where it's not used.
2020-04-02 16:44:22 +03:00
siivonek
e3ba0bfb8c
Fix memory leak.
2020-04-02 14:15:36 +02:00
siivonek
566680af7b
Move function hsum to file where it is used to avoid errors.
2020-04-02 14:03:06 +02:00
siivonek
58be514e2a
Fix pipeline error.
2020-04-02 13:50:08 +02:00
siivonek
2aa0d97589
Add VAQ test in test_tools. Bump minor version number in configure.ac. Update help text for VAQ.
2020-04-01 18:16:39 +02:00
siivonek
c6e421019e
Merge vaq-simd
2020-03-31 21:40:29 +02:00
Jaakko Laitinen
8e4b738900
Fix error when first value in pu depth list is omitted
2020-03-31 16:57:12 +03:00
Jaakko Laitinen
54ef0bbfd2
Fix unintended functionality when giving multiple --pu-depth-intra/inter list parameters
2020-03-31 16:39:56 +03:00
Jaakko Laitinen
cb0c7b23b5
Merge branch 'intra_qp_offset_auto' into 'master'
...
Add auto option to intra-qp-offset
See merge request TIE/ultravideo/kvazaar!7
2020-03-31 16:17:36 +03:00
Pauli Oikkonen
99889dab15
Fix switch(bool) in picture-avx2.c
...
It passes on GCC but warns on Clang
2020-03-31 15:42:19 +03:00
Jaakko Laitinen
e0440c3de1
Update docs
2020-03-31 15:27:48 +03:00
Jaakko Laitinen
7760dcf441
Remove intra qp offset from preset parameters
2020-03-31 14:06:07 +03:00
Jaakko Laitinen
8bd1a2b667
Update help message
2020-03-31 13:19:05 +03:00
Jaakko Laitinen
b4f5486190
Set intra qp offset default to auto
2020-03-31 12:58:40 +03:00
Jaakko Laitinen
740688c67d
Add auto option to intra qp offset
2020-03-31 11:56:44 +03:00
Marko Viitanen
a0af87bdc0
Update contexts to match VTM 8.0
2020-03-30 14:34:50 +03:00
Marko Viitanen
d36ba85861
Fixed PPS and slice header to match VTM 8.0 (only for I-Frame!)
2020-03-30 12:55:12 +03:00
Marko Viitanen
64b9177cf0
Fix SPS to match VTM 8.0
2020-03-30 09:56:38 +03:00
Pauli Oikkonen
0c7bfa7dc9
Fix AVX2 on Clang
...
Besides just -mavx2, AVX2 support depends on a couple minor instruction
set extensions that should always exist on AVX2-capable hardware. Too
bad the different bit twiddling instructions are invoked slightly
differently between GCC and Clang, but now Clang seems to also produce
an AVX2-capable build.
2020-03-26 18:48:48 +02:00
siivonek
89d3e674ce
Comment out code which possible messes up OBA
2020-03-26 17:49:31 +02:00
siivonek
be7d9ddec5
Fix error in frame variance calculation. Chroma channels were not added to variance
2020-03-26 14:33:00 +02:00
Marko Viitanen
8908324df8
Fix PTL DPB HDR param headers to match VTM 8.0
2020-03-26 10:40:27 +02:00
Marko Viitanen
d622ebb1f4
Fix NAL types to match VTM 8.0
2020-03-26 10:39:35 +02:00
Jaakko Laitinen
45ca8f8113
Merge branch 'master' into 'extended_pu-depths'
2020-03-25 15:11:08 +02:00
siivonek
5986e71535
Fix mistake
2020-03-20 13:43:44 +02:00
Jaakko Laitinen
d6ffe9e495
Update docs
2020-03-20 13:27:07 +02:00
Jaakko Laitinen
621450cc1d
Update --help
2020-03-20 13:07:48 +02:00
Jaakko Laitinen
aaac3df69b
Add prefix to kvazaar.h define
2020-03-20 09:04:00 +02:00
siivonek
2a85be5752
Move qp_to_lambda so it is defined before use. Change some tabs to spaces
2020-03-19 22:13:53 +02:00
siivonek
0a4ce3c0aa
Add vaq to new rate control
2020-03-19 21:43:52 +02:00
siivonek
1bbc598d75
Merge branch 'master' into vaq
2020-03-19 20:19:43 +02:00
Joose Sainio
b53911d637
Merge branch 'rc-intra'
2020-03-19 13:34:15 +02:00
Joose Sainio
a304a8ea6e
Add weights for GOP 16 based on fitting a power curve to bits spent by HM
2020-03-19 11:13:43 +02:00
Joose Sainio
e823ac1dae
miscellaneous fixes
...
- bump library version
- add help desk for --clip-neighbour
- update the default values of --clip-neighbour and --intra-bits
- update tests to more sensible
2020-03-19 10:47:28 +02:00
Jaakko Laitinen
b2ddba38c2
Set correct size for pu-depth min/max data structure
2020-03-19 09:29:43 +02:00
Joose Sainio
2c345bc3cf
try to fix tsan issue
2020-03-18 14:58:54 +02:00
Jaakko Laitinen
fe428dcbe1
Fix no gop functionality
2020-03-18 11:03:33 +02:00
Jaakko Laitinen
af3d559d8d
Let pu-depth be defined per gop-layer
2020-03-17 17:57:18 +02:00