Joose Sainio
|
eb78aead1f
|
Fix additional potential data races
|
2019-11-21 11:03:12 +02:00 |
|
Joose Sainio
|
35d7e0d88b
|
Fix data race
|
2019-11-21 10:25:04 +02:00 |
|
Joose Sainio
|
7a49cb60fb
|
Merge branch 'rc-intra' of gitlab.tut.fi:TIE/ultravideo/kvazaar into rc-intra
|
2019-11-19 15:09:49 +02:00 |
|
Pauli Oikkonen
|
979d66031c
|
Create a strategy out of intra_pred_filtered_dc
|
2019-11-19 14:50:31 +02:00 |
|
Joose Sainio
|
7ebe30448e
|
added tests for the new ratecontrol
|
2019-11-19 14:38:37 +02:00 |
|
Joose Sainio
|
0e8815a3d8
|
test clipping qp to previous frame instead of previous ctus
|
2019-11-19 14:32:31 +02:00 |
|
Joose Sainio
|
ddb4e5a131
|
move the intra bit calculation so that it is used also with lambda rc
|
2019-11-19 14:16:48 +02:00 |
|
Joose Sainio
|
a07833f3e6
|
check that mallocs in rc initialization were successful
only call kvz_update_after_picture when using the OBA rc
|
2019-11-19 13:59:44 +02:00 |
|
Joose Sainio
|
50d410a316
|
re-enable static qp encoding and lambda rc
|
2019-11-19 13:45:58 +02:00 |
|
Pauli Oikkonen
|
fa4bb86406
|
Optimize intra_pred_planar_avx2 for 4x4 blocks
|
2019-11-19 13:39:02 +02:00 |
|
Joose Sainio
|
57e5615ece
|
Fix incorrect intra rc calculation skipping
|
2019-11-19 13:25:31 +02:00 |
|
Joose Sainio
|
6cc3bcd87e
|
Command line parameters for oba rc and implementation of the usage of the intra parameter
|
2019-11-19 09:29:06 +02:00 |
|
Joose Sainio
|
eb73548af5
|
Encode first frame completely before starting others to enable owf
|
2019-11-18 09:51:37 +02:00 |
|
Pauli Oikkonen
|
4761d228f9
|
Start to vectorize the 4x4 loop
|
2019-11-15 17:32:40 +02:00 |
|
Pauli Oikkonen
|
8d45ab4951
|
Stupidify the 4x4 planar loop for vectorization
|
2019-11-14 17:14:04 +02:00 |
|
Joose Sainio
|
c759c138ed
|
Prepare the rc data structure to be shared among all frame encoders
|
2019-11-13 11:56:25 +02:00 |
|
Joose Sainio
|
cdb7c851a4
|
Fix weight calculation
|
2019-11-13 08:55:31 +02:00 |
|
Joose Sainio
|
b9b01f8036
|
WPP with threading
|
2019-11-12 12:12:57 +02:00 |
|
Joose Sainio
|
615973adca
|
should enable threading with wpp when owf is not used
|
2019-11-12 09:03:00 +02:00 |
|
Pauli Oikkonen
|
6f13f6525c
|
Merge branch 'new_prints'
|
2019-11-07 17:04:21 +02:00 |
|
Joose Sainio
|
d353f7dd1a
|
Disable debug prints, fix multiple bugs in the calculation
|
2019-11-07 15:08:57 +02:00 |
|
mercat
|
57e8c3ebc2
|
Merge branch 'ML-cplx_red_ICIP'
|
2019-11-07 13:25:47 +02:00 |
|
Pauli Oikkonen
|
558f0ec401
|
Mbps, not mbps
|
2019-11-05 18:06:00 +02:00 |
|
Pauli Oikkonen
|
2edf533925
|
Tidy the end report printing
Also fix a bug with non-integer target FPS
|
2019-11-05 17:20:00 +02:00 |
|
Joose Sainio
|
408fd4ccb6
|
Fix lambda and qp calcualtion for intra frames
also fixes a bug with selecting the clip neighbor lambda and clip neighbor qp
selection for inter frames
|
2019-11-05 10:51:39 +02:00 |
|
Pauli Oikkonen
|
c7313ce567
|
Store AVG QP information in encmain
|
2019-11-04 17:08:07 +02:00 |
|
Reima Hyvönen
|
80575c59bf
|
Some updates done to get right bitrate and avg QP
|
2019-10-31 15:56:24 +02:00 |
|
Reima Hyvönen
|
252bab8820
|
Added prints to bitrate and AVG QP
|
2019-10-31 15:56:24 +02:00 |
|
Pauli Oikkonen
|
6d7a4f555c
|
Also remove 16x16 (A * B^T)^T matrix multiply
Can be done using (B * A^T) instead, it's the exact same
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
2c2deb2366
|
Tidy AVX2 32x32 matrix multiply
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
98ad78b333
|
Tidy the old AVX2 32x32 matrix multiply
It was actually a very good algorithm, just looked messy!
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
4a921cbdb5
|
Retain data as much in YMM registers as possible
This seems to make it a whole lot quicker
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
9589baccac
|
Add more swap filename patterns to .gitignore
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
ac4d710e23
|
Unroll 32x32 matrix multiply, use all regs
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
a58608d0b8
|
Remove totally unnecessary (A * B^T)^T 32x32 multiply
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
043f53539f
|
Implement a streamlined matrix-multiply 32x32 DCT
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
e9da2d851b
|
Tidy 32x32 fast DCT's helper functions
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
e382339182
|
Implement fast (butterfly) 32x32 DCT in AVX2
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
b5962dadac
|
Tidy indentation in AVX2 16x16 iDCT
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
36a8f89025
|
Fine-tune 16x16 AVX2 iDCT
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
2b95d9cdd6
|
Align all DCT test buffers to 32 bytes
Now that most AVX2 DCTs use MOVDQA instead of MOVDQU, also adapt the
tests to that..
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
ca9409de2b
|
Implement 16x16 DCT as butterfly algorithm in AVX2
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
7c69a26717
|
Use aligned loads and stores for AVX2 DCT
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
8e9c65dca6
|
Align DCT matrices and temp transform buffers
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
148a150522
|
Align DCT source and dest blocks to cache line
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
8e60bbf6a6
|
Slightly tune 16x16 forward DCT
Use an array of __m256i's to store temporary value, essentially letting
the compiler enforce alignment and use aligned loads and stores.
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
c0cc0e8a75
|
Optimize 16x16 multiply by only slicing right mat once
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
e463d27f22
|
Implement streamlined generic 16x16 matrix multiply
It can't be this fast for real, can it?
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
beb85ce9d6
|
Reorder parameters for 8x8 matrix multiplies
|
2019-10-28 16:19:42 +02:00 |
|
Pauli Oikkonen
|
292af62256
|
Implement tailored 16x16 forward DCT
|
2019-10-28 16:19:42 +02:00 |
|