Commit graph

224 commits

Author SHA1 Message Date
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 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 5ed1ffb5d4 WIP: pre Christmas 2022-03-18 08:28:28 +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 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 d5e4e831f4 Preliminary code for outputting bit costs during the search 2022-03-18 08:17:41 +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
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
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
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
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 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