Commit graph

1365 commits

Author SHA1 Message Date
Marko Viitanen 9951810910 Fixed deblocking with bi-dir blocks 2015-04-23 09:43:39 +03:00
Marko Viitanen 7f504b7808 Added a commandline parameter --bipred to enable bi-pred search 2015-04-21 14:35:16 +03:00
Marko Viitanen fb74f86a5b Bi-pred search now actually does cost calculations 2015-04-21 14:16:06 +03:00
Marko Viitanen e12ba7c80f Created function inter_recon_lcu_bipred() and moved bipred recon there 2015-04-21 12:05:21 +03:00
Marko Viitanen 50fce975d9 Clamp bi-pred motion vectors because ipol filtering requires modifications 2015-04-21 11:24:07 +03:00
Ari Koivula 13924a2057 Add --no-info parameter.
- Stops encoder information from being added to bitstream.
- The version information overhead is too big when doing comparisons with
  very short sequences.
2015-04-16 17:30:36 +03:00
Ari Koivula 7028846423 Fix bug in intra mode search.
- The cost of the first mode in the mode list was returned instead of cost of
  the selected mode, as this used to be the best mode when the list was
  sorted. Should only matter when doing inter coding.
- This pretty much affects only --rd=1 in inter frames.
2015-04-09 16:05:53 +03:00
Marko Viitanen da3fe9f199 Fixed rounding in bi-pred reconstruction 2015-04-02 15:55:13 +03:00
Marko Viitanen c7a17cf1c4 Changed motion vector candidate derivation to work with bi-pred case 2015-04-02 14:05:24 +03:00
Marko Viitanen 73db9fec83 Fixed asserts for intra PU-depth configurations 2015-04-02 10:31:56 +03:00
Marko Viitanen 5d71fb3136 Fixed leaf aligning 2015-04-01 08:49:22 +03:00
Marko Viitanen d26b89174b Fixed intra chroma search ref_v pointer 2015-03-31 15:43:22 +03:00
Marko Viitanen 4b7db2e014 Added a dummy bi-pred search, always selects bi-pred block when possible 2015-03-31 15:02:43 +03:00
Marko Viitanen 2c676927f0 Fixed a bug in bipred reconstruction causing an overflow 2015-03-31 15:02:10 +03:00
Marko Viitanen 06bc4f3d5e Fixed duplicate checking for merge cand and some cleanup 2015-03-31 12:23:46 +03:00
Marko Viitanen 004e8082ab Fixed deblocking after L0/L1 mv changes 2015-03-31 12:22:48 +03:00
Marko Viitanen c02e3b8e26 Fixed inter_get_mv_cand() reference picture checking 2015-03-30 15:22:56 +03:00
Marko Viitanen f881d6bf8a Modified structures and mv handling to use L0/L1 vectors 2015-03-30 14:40:29 +03:00
Marko Viitanen d6f68d0950 Force clearing of references when GOP not used and I-slice 2015-03-30 10:21:41 +03:00
Marko Viitanen f28ebbcd41 Moved GOP defining to config.c and added parameter --gop
* Checking that intra period and gop_len match
2015-03-30 10:09:54 +03:00
Marko Viitanen c82915761f Enabled insertion of I-slices when GOP is used 2015-03-30 10:09:49 +03:00
Marko Viitanen 815e0b8897 Moved reference list printing to encoder_compute_stats() 2015-03-30 10:09:32 +03:00
Marko Viitanen 2243d139bf Fixed GOP reference usage when using owf 2015-03-26 14:11:13 +02:00
Marko Viitanen 1dc53be8fc Fixed leaf aligning 2015-03-26 13:54:17 +02:00
Marko Viitanen bbeb85f9ee Fixed case when cfg->frames is zero 2015-03-26 11:24:41 +02:00
Marko Viitanen 5c04603421 Remove unused ref frames on GOP case even when number of ref frames is within limits 2015-03-26 11:14:13 +02:00
Marko Viitanen 5071b5c990 Moved reference list sorting and parsing to encoder_state_new_frame()
* fixed a bug in reference verification and added an error state
2015-03-26 10:58:56 +02:00
Marko Viitanen c40ca49b6c When GOP is used, verify the references are available 2015-03-26 10:38:21 +02:00
Marko Viitanen fe581b881e Changed GOP structure to enable coding sequences not divisible by gop_len 2015-03-25 16:00:20 +02:00
Marko Viitanen 42e02dbfd9 Fixed tr-skip cost calculation 2015-03-24 13:35:28 +02:00
Marko Viitanen a7328ab008 Fixed tr-skip cost calculation 2015-03-24 12:40:01 +02:00
Marko Viitanen c649c90f3a Changes to enable adaptation to any GOP len 2015-03-24 12:01:57 +02:00
Marko Viitanen 9a828ae5da Fixed merge candidate scaling in hexbs and excluded weighted pred candidates in cost calc 2015-03-24 09:38:24 +02:00
Marko Viitanen 2d8552d0d6 Fixed merge candidate usage by skipping weighted prediction candidate 2015-03-23 15:17:41 +02:00
Marko Viitanen 7952f892fc Fixed GOP reference usage 2015-03-23 14:17:44 +02:00
Marko Viitanen 34e8f70c8c Fixed temporal MV predictor offset 2015-03-23 09:22:47 +02:00
Marko Viitanen eccf1c1a16 Fixed temporal MV predictor offset 2015-03-23 09:21:52 +02:00
Marko Viitanen 164b7a7743 Merge remote-tracking branch 'remotes/origin/master' into GOP 2015-03-20 11:40:15 +02:00
Marko Viitanen 5ae9a70e38 Disable usage of P-slices when GOP 2015-03-20 10:43:59 +02:00
Marko Viitanen 26082d5328 Zero merge candidate fix for B-frames 2015-03-20 10:33:05 +02:00
Marko Viitanen 0c1aa6f73c Better reference picture removal function encoder_state_remove_refs() 2015-03-20 10:28:17 +02:00
Marko Viitanen 7dab3ea0f6 Replaced temporary reference lists with the ones in gop configurations 2015-03-20 10:25:40 +02:00
Marko Viitanen f166d25dd0 Added positive and negative reference frames to the gop config 2015-03-20 10:22:53 +02:00
Arttu Ylä-Outinen 3f31e7bf47 Merge branch 'tz-search' 2015-03-19 19:04:44 +02:00
Arttu Ylä-Outinen 176dbb6a5b Add --me parameter.
Selects the integer motion estimation algorithm (hexbs or tz).
2015-03-19 18:48:10 +02:00
Marko Viitanen d72c560880 Generate sorted reference list for L0 and L1 2015-03-19 12:26:59 +02:00
Marko Viitanen c761a6beb3 Added encoder state as an input parameter to inter_get_merge_cand() 2015-03-18 12:35:47 +02:00
Marko Viitanen c56b4d5747 Added combined merge candidates on B-slices and struct inter_merge_cand_t 2015-03-18 10:03:06 +02:00
Ari Koivula 6ec177f75c Improve handling of input vector to inter search. 2015-03-17 17:16:15 +02:00
Ari Koivula 55ae02f367 Copy cu_info from tiles to main state.
- Main states cu_array can be accessed through state->global->ref, which
  allows the use of cu_info data from reference frames.
- This was already used by giving previous frames movement vector to next
  frame as a starting point candidate, but that functionality was broken at
  some point because the data wasn't being moved from child tiles cu_array
  to the main cu_array.
- Alternative would be to access the child tiles array directly, but
  currently there isn't a mechanism to preserve those arrays for reference
  frames.
2015-03-17 13:24:20 +02:00
Ari Koivula 4bec6cec93 Simplify wavefront handling.
- Move the reconstruction status assignment out of the main for job loop.
2015-03-17 13:23:27 +02:00
Ari Koivula 4a27f79f20 Update comments. 2015-03-17 13:23:16 +02:00
Marko Viitanen 1da1dc9578 Clean up reference index and mvd writing 2015-03-16 09:41:02 +02:00
Ari Koivula ca09e8bfe3 Fix WPP not working with threads=0.
- Apparently threadqueue_submit runs the job if there are no threads.
2015-03-13 17:15:05 +02:00
SanteriS 913ade461b tz_search step 1, first if: && -> || 2015-03-12 17:57:17 +02:00
SanteriS 949ec57849 Merge branch 'master' of https://github.com/ultravideo/kvazaar 2015-03-12 17:55:03 +02:00
SanteriS bdb0639ac9 fixed function interfaces for tz_search and its subfunctions. 2015-03-12 17:54:21 +02:00
Ari Koivula d2bb71739f Clean up and comment WPP threading code.
- Remove WPP row reconstruction dependency to the row above current one in
  the previous frame. It's obviously unnecessary.
- Remove WPP row reconstruction dependency to the current row in the
  previous frame, unless the current row is the last row.
2015-03-11 18:30:37 +02:00
Ari Lemmetti b9ec4b0a54 AVX2 acceleration for new luma filtering. 2015-03-11 15:33:38 +02:00
Marko Viitanen bc8ea9547e Use P-frames when last GOP picture 2015-03-11 15:23:16 +02:00
Marko Viitanen a4b5f46b46 Fixed reference list delta and num_ref_idx_lX_active values 2015-03-11 15:19:32 +02:00
Marko Viitanen ac4973c544 Fixed deblocking strength in this configuration when B-slice 2015-03-10 15:20:02 +02:00
Marko Viitanen 1527822753 Fixed GOP POC order when not using threads 2015-03-10 14:12:51 +02:00
Marko Viitanen 866c3bfdf1 Setting gop_len to 0 now works 2015-03-10 12:16:57 +02:00
Marko Viitanen 1c38fbbd3b Fixed GOP when no threads are used 2015-03-10 10:45:05 +02:00
Marko Viitanen 66660516b7 Merge remote-tracking branch 'remotes/github/master' into GOP
Conflicts:
	src/cabac.h
	src/config.h
	src/cu.h
	src/encoder_state-bitstream.c
	src/encoderstate.c
2015-03-10 10:32:00 +02:00
Marko Viitanen ff41ef557d Fixed reference usage of top GOP layer pictures 2015-03-10 09:18:19 +02:00
Marko Viitanen eba298e635 Added cu->inter.mv_ref_coded variable 2015-03-10 09:17:25 +02:00
Marko Viitanen ec02642cc8 Added more bits to POC counter and fixed num_reorder_pic and max_dec_pic_buffering values 2015-03-10 09:06:32 +02:00
SanteriS 9e9f5e3150 Merge branch 'master' of https://github.com/ultravideo/kvazaar 2015-03-08 19:20:08 +02:00
SanteriS e2f9fe130a changed step 1 for tz_search 2015-03-08 19:19:23 +02:00
Ari Lemmetti 39eceec38d Rewrite of luma fractional pixel filtering. Utilizes intermediate values instead of calculating everything again. 2015-03-06 17:58:22 +02:00
Marko Viitanen 42d3f2a8b0 Added B-frame encoding and reference list exceptions for top-layer GOP pictures 2015-03-06 16:32:50 +02:00
Marko Viitanen 1afba671e2 Added missing cabac bits to mv coding 2015-03-06 16:31:27 +02:00
Marko Viitanen 6095503918 Modified search to use correct reference id and mv directions 2015-03-06 16:29:24 +02:00
Marko Viitanen 13c925b701 Testset of data for reference picture lists 2015-03-06 16:28:23 +02:00
Marko Viitanen 43b086caed Added missing slice header flag "mvd_l1_zero_flag" 2015-03-06 16:27:42 +02:00
Marko Viitanen 18d9789fab Cabac context array for inter direction 2015-03-06 16:26:16 +02:00
Ari Koivula 2f79bfebf7 Rename parameter encoder_state to state in all functions.
- It's so widely used that there isn't really need to emphasize that
  it's the encoders state. Also, it isn't really the encoders state,
  but encoding jobs state.
2015-03-04 17:31:07 +02:00
Ari Koivula 14fe1b6648 Rename enum color_index to color_t. 2015-03-04 16:37:35 +02:00
Ari Koivula ded6fd9ee8 Renamed typedef pixel to pixel_t. 2015-03-04 16:35:53 +02:00
Ari Koivula 1f42adb1ea Renamed typedef coefficient to coeff_t. 2015-03-04 16:33:47 +02:00
Ari Koivula fedd05465d Rename struct sao_info to sao_info_t. 2015-03-04 16:32:38 +02:00
Ari Koivula 3d135324da Rename struct threadqueue_queue to threadqueue_queue_t. 2015-03-04 16:30:20 +02:00
Ari Koivula b7fcb800b2 Rename struct threadqueue_job to threadqueue_job_t. 2015-03-04 16:28:56 +02:00
Ari Koivula cf5f240604 Rename struct hardware_flags to hardware_flags_t. 2015-03-04 16:24:59 +02:00
Ari Koivula e7754bb518 Rename struct strategy_to_select to strategy_to_select_t. 2015-03-04 16:24:06 +02:00
Ari Koivula e95b138e62 Rename struct strategy_list to strategy_list_t. 2015-03-04 16:23:04 +02:00
Ari Koivula 95afc5af51 Rename struct strategy to strategy_t. 2015-03-04 16:17:45 +02:00
Ari Koivula db42176a64 Rename struct image_list to image_list_t. 2015-03-04 16:13:57 +02:00
Ari Koivula 7bafd34cfa Remove struct rd_stats. 2015-03-04 14:01:17 +02:00
Ari Koivula fe55961f84 Rename struct image to image_t. 2015-03-04 14:01:17 +02:00
Ari Koivula 5431d0ce19 Rename struct lcu_order_element to lcu_order_element_t. 2015-03-04 14:01:17 +02:00
Ari Koivula 9e64ee3cee Suffix encoder_state_config structs with _t. 2015-03-04 14:01:17 +02:00
Ari Koivula cdb1a25f05 Inline struct me into encoder_control_t. 2015-03-04 14:01:16 +02:00
Ari Koivula e5b18cd536 Inline cu_info_intra and cu_info_inter into cu_info_t. 2015-03-04 14:01:16 +02:00
Ari Koivula a0767a76d2 Rename struct vector2d to vector2d_t. 2015-03-04 14:01:16 +02:00
Ari Koivula 5b12830756 Rename struct config to config_t. 2015-03-04 14:01:16 +02:00
Ari Koivula 1a62fee300 Rename struct cabac_data to cabac_data_t. 2015-03-04 14:01:16 +02:00
Ari Koivula 727fefacc4 Rename struct cabac_ctx to cabac_ctx_t. 2015-03-04 14:01:16 +02:00