Commit graph

1724 commits

Author SHA1 Message Date
Ari Koivula 0fd9105f0a Fix sao type context init values.
The initialization slice types are in reverse order compared to the codes used
for slice types. They are BPI instead of IPB.
2013-10-25 10:51:11 +03:00
Ari Koivula 3244c98b29 Fix sao cabac contexts.
According to HM implementation, sao luma and chroma use the same contexts.
2013-10-25 10:51:10 +03:00
Ari Koivula 291be9507b Start adding Sample Adaptive Offset capability. 2013-10-25 10:39:42 +03:00
Marko Viitanen e1f0274b51 Merge mode working on blocks > 8x8 2013-10-23 15:14:26 +03:00
Ari Koivula 9209adc464 Merge branch 'best-search' 2013-10-22 19:04:56 +03:00
Ari Koivula 2d26175293 Fix bug that causes lambda_cost to be ignored in search_best_mode. 2013-10-22 19:02:00 +03:00
Ari Koivula 8f5567ba6f Add full motion vector search back. 2013-10-22 19:00:36 +03:00
Marko Viitanen 8883fb27aa Implemented skip/merge mode checking, disabled for now because it's not working 2013-10-22 17:40:55 +03:00
Marko Viitanen bb9d8ee9dd Fixed motion vector difference calculation 2013-10-22 16:53:18 +03:00
Marko Viitanen b20b583d9b Moved all residual/coeff functionality to encode_block_residual() 2013-10-22 16:27:50 +03:00
Ari Koivula ecf10a9717 Add an estimate of the cost of the motion vector to motion search. 2013-10-22 14:09:20 +03:00
Marko Viitanen 0cce17453c Simplified chroma-coeff-coded-flag derivation on transform split 2013-10-22 13:04:58 +03:00
Marko Viitanen 4cec2963ac Fixed transform splitting to allow 64x64 inter blocks 2013-10-22 12:33:11 +03:00
Ari Koivula a81cc45b97 Comment and clean up hexagon search. 2013-10-22 12:28:43 +03:00
Marko Viitanen bcb900371f Added top_coeff array to cu_info and implemented derivation logic 2013-10-22 12:09:18 +03:00
Ari Koivula c0f06fdb9e Change intra prediction to use SAD instead of SATD.
Inter uses only SAD and we don't have mechanisms for comparing these two.
2013-10-21 17:42:55 +03:00
Ari Koivula 27f5555b1c Change hexacon_search to take const pointers. 2013-10-18 17:51:53 +03:00
Ari Koivula 4576736575 Change inter SAD functions to take const pointers. 2013-10-18 17:51:16 +03:00
Ari Koivula c7ca3a6b44 Clarify parameter passing for hexagon_search.
Handling mv as a local struct instead of pointer had no performance impact,
but it makes the parameter passing clearer so I'm keeping it.
2013-10-18 17:45:42 +03:00
Marko Viitanen 2efcc12678 Fixed DC-filtering stride 2013-10-18 17:42:16 +03:00
Ari Koivula afc84b4ef8 Change motion vectors search to accept vector2d structs. 2013-10-18 17:33:18 +03:00
Marko Viitanen bc9ddb64e5 Fixed luma reconstruction overflow/underflow 2013-10-18 16:54:11 +03:00
Marko Viitanen 927155de2b Set correct block residual bit -> fixes deblocking 2013-10-18 16:23:15 +03:00
Marko Viitanen c44f0ff540 Refactoring: all int16_t pixel info in intra to pixel typedef 2013-10-18 16:19:17 +03:00
Ari Koivula f9a99b9111 Clean up inter search. 2013-10-18 15:57:43 +03:00
Ari Koivula 0f95bec907 Clean up control flow of best search.
Conflicts:

	src/search.c
2013-10-18 15:23:17 +03:00
Ari Koivula 2fa2098236 Remove unnecessary guards against 0 cost. 2013-10-18 15:20:45 +03:00
Marko Viitanen dda53f48a7 Refactoring encoder transform/quant related functions, cu_info and picture 2013-10-18 11:41:52 +03:00
Marko Viitanen d236d58981 Added more data to cu_info and renamed "residual" to "coeff_y/u/v" in the struct 2013-10-18 11:39:32 +03:00
Marko Viitanen d9e6d8413d Added coeff data to picture-struct 2013-10-18 11:39:32 +03:00
Marko Viitanen db266e74ff Added merge mode selection (NOT WORKING!) and a function to get candidates 2013-10-18 11:39:32 +03:00
Marko Viitanen 52335adda0 Split merge candidate derivation to its own function 2013-10-18 11:39:32 +03:00
Marko Viitanen 96a0f03298 Refactoring encoder.c in preparation for adding merge-mode 2013-10-18 11:39:31 +03:00
Ari Koivula b1b45944a9 Merge branch 'intra_sad' 2013-10-18 10:48:18 +03:00
Ari Koivula 99d4a669c3 Fix bug with partitioning search. 2013-10-18 10:45:38 +03:00
Ari Koivula 61cef4eef4 Add intra modes to CU visualization. 2013-10-16 17:09:04 +03:00
Ari Koivula d74d4e4ef1 Refactor intra sad calculation functions.
- Move SATD (hadamart) code to it's own functions.
- Generate functions for fixed block sizes with macros, as if using templates.
- Define new interface with function pointer cost_16bit_nxn_func that different
  cost functions can use.
- Hide fixed size block cost functions with getters.
2013-10-16 17:09:03 +03:00
Ari Koivula 122806bcf7 Enable macro expansion and function macros in doxygen. 2013-10-16 13:55:28 +03:00
Ari Koivula 70832ac201 Merge branch 'pixel' 2013-10-15 16:15:29 +03:00
Ari Koivula 202aec69f2 Change more 8-bit pixels to pixel typedef. 2013-10-15 16:02:06 +03:00
Ari Koivula ef0caee959 Fix compiler warnings. 2013-10-15 14:36:42 +03:00
Ari Koivula b8dd664026 Move all 8-bit pixels into new pixel typedef. 2013-10-15 14:36:30 +03:00
Ari Koivula dba20b2467 Merge branch 'sad-boundary' 2013-10-11 15:38:35 +03:00
Ari Koivula 0c3bd7e223 Move SAD calculations to picture module. 2013-10-11 15:37:58 +03:00
Ari Koivula 69d1f6d1e2 Clean up the code.
- Rename get_block_sad to calc_sad and handle special cases in general_sad.
- Remove old search functions because I don't want to update or test them.
2013-10-11 15:19:21 +03:00
Ari Koivula be501f720c Reorder conditions. 2013-10-11 14:11:49 +03:00
Ari Koivula b155d825be Add tests for movement vectors that are completely out of frame. 2013-10-11 14:11:49 +03:00
Ari Koivula 0df974cb0d Change sad functions to accept negative block widths.
This makes boundary checking clearer.
2013-10-11 14:11:21 +03:00
Ari Koivula 235b1ec0bc Add rest of the quadrants for sad calculation.
- All tests pass.
- Movement vectors that don't overlap with the frame aren't handled yet.
2013-10-11 12:41:07 +03:00
Ari Koivula 22262dbc98 Fix a bug in a test. 2013-10-11 12:38:14 +03:00