Commit graph

448 commits

Author SHA1 Message Date
Ari Koivula 43ae719ddb Tweak implementation of SAO reconstruction to be a bit more clear. 2013-11-08 15:04:06 +02:00
Ari Koivula ef8a984d4f Fix incorrect blitting of top row during SAO reconstruction. 2013-11-08 11:02:18 +02:00
Ari Koivula f9061d322a Fix handling of incomplete LCU's in SAO reconstruction. 2013-11-06 23:09:56 +02:00
Ari Koivula 7a20e797be Fix incorrect SAO encoding. 2013-11-06 22:50:26 +02:00
Ari Koivula 3eccdc0d7b Move deblocking filtering to happen before SAO reconstruction.
-Re-enable deblocking.
2013-11-06 22:50:14 +02:00
Ari Koivula 1c03471d57 Fix for leftmost LCUs being offset by one pixel during SAO reconstruction. 2013-11-06 22:26:00 +02:00
Ari Koivula 98f2a1aedc Fix LCU borders in sao reconstruction. 2013-11-06 11:23:01 +02:00
Marko Viitanen 2c61286326 Added missing (0,0) merge/skip candidate to search 2013-11-05 12:49:39 +02:00
Marko Viitanen 93f2b75df7 Fixed a bug in flat scaling list and disabled scaling list by default 2013-11-05 09:41:14 +02:00
Ari Koivula 5791301c2b Fix moving of rightmost LCUs during sao reconstruction.
Now the leftmost LCUs move though.
2013-11-04 21:37:04 +02:00
Ari Koivula 91024a2095 Disable deblocking because it breaks sao. 2013-11-04 20:51:51 +02:00
Ari Koivula 5f3ee9e096 Sao vcxproj files. 2013-11-04 20:35:48 +02:00
Ari Koivula f21df00386 Save a copy of luma for sao. 2013-11-04 20:33:29 +02:00
Ari Koivula a57b938270 Add new module sao.
- Move sao-stuff not directly related to encoding to sao-module.
- Calculate sao for all LCUs before encoding any of them. This is in
  preparation to doing the reconstruction line at a time instead of
  LCU at a time.
2013-11-04 19:41:01 +02:00
Ari Koivula 03f2967899 Block based sao dead end.
This will never work because the adjacent blocks require the original values
of the boundary pixels to make category decisions.
2013-11-04 17:55:29 +02:00
Ari Koivula 31af7e3929 Fix sao offsets. Reconstruction kind of works. 2013-11-04 13:05:05 +02:00
Ari Koivula 66fe302520 Fix cabac context for sao. HM accepts encoded sao. 2013-11-04 13:03:51 +02:00
Ari Koivula b6c5c87fb7 Merge branch 'master' into sao
SAO needs to be coded before LCU data has been searched. Searching
has already been moved to happen before encoding in the master branch.

Conflicts:
	src/encoder.c
	src/picture.c
	src/picture.h
2013-11-04 12:44:01 +02:00
Ari Koivula 7bd0902727 Implement fast distortion estimation for sao.
Add function for blitting pixels from one buffer to another.

Several commits have been squashed to this one.
2013-11-04 12:37:37 +02:00
Marko Viitanen 2f53b0aa3a Enabled sign-bit-hiding by default 2013-10-29 13:14:43 +02:00
Marko Viitanen caa010a972 Changed scalinglist_process() to be done on frame level 2013-10-28 11:47:54 +02:00
Marko Viitanen 601d64f04f Merge branch 'merge-mode' 2013-10-25 15:40:58 +03:00
Marko Viitanen ded4c18bf6 Fixed merge candidate duplicate removal and implemented skip mode selection 2013-10-25 15:39:19 +03:00
Ari Koivula e9819cbb5e Fix coding of sao chroma type idx. 2013-10-25 10:51:11 +03:00
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