Laurent Fasnacht
43b5f84c0d
Fix sao_calc_edge_block_dims
...
It was computing wrong dimensions, which was causing out-of-bounds reads in sao_reconstruct.
2014-05-09 10:30:34 +02:00
Laurent Fasnacht
4dbf7c7a52
Fix blit dimensions in sao_search_best_mode
2014-05-09 08:24:02 +02:00
Laurent Fasnacht
6c6adf18c7
Refactor encoder_state
2014-05-07 11:47:31 +02:00
Laurent Fasnacht
5fea5875a5
Huge refactoring
...
Split some parts of encoder_control into encoder_state
(idea: encoder_control is immutable)
Goal is to allow multiple substreams in the future.
2014-04-22 10:39:12 +02:00
Laurent Fasnacht
3396264f3c
Moved g_cur_lambda_cost into encoder_control.cur_lambda_cost
2014-04-17 12:00:21 +02:00
Laurent Fasnacht
4a9c239027
Remove g_bitdepth
2014-04-17 11:13:13 +02:00
Laurent Fasnacht
7a2b883059
Remove encoder_input width, height, height_in_lcu, and width_in_lcu
2014-04-17 11:13:12 +02:00
Laurent Fasnacht
9ac3b7bf2b
encoder->in.cur_pic --> cur_pic
2014-04-17 11:13:10 +02:00
Ari Koivula
9229e5d11b
Fix undefined behavior of EO_IDX.
...
- Move the whole eo_cat thing to it's own function.
- Casting pixel values to int should solve issues with SIGN3. Not casting them
was detected as undefined behavior by CLANG. Probably because the result of
two unsigned might be treated as unsigned (but isn't on VS2010).
2014-04-16 14:50:19 +03:00
Ari Koivula
051484f8d8
Remove unused old mode cost estimation from SAO.
2014-04-16 11:19:23 +03:00
Ari Koivula
33b9594fec
Take into account the coding cost of not using SAO.
2014-04-15 21:32:24 +03:00
Ari Koivula
880d09b27a
Add sao_type_idx to SAO mode cost estimation.
2014-04-15 21:29:09 +03:00
Ari Koivula
280a946269
Apply bit cost fixes to edge band band sao search.
...
- Increases bdrate slightly. It's still a cleaner solution though and further
improvements to bit cost estimation might improve things.
2014-04-15 21:28:16 +03:00
Ari Koivula
c968253eb3
Estimate SAO merge coding costs better.
...
- This doesn't seem to have very much of an effect. I guess the difference
between 1 and 2 bits isn't that important.
2014-04-15 21:27:16 +03:00
Ari Koivula
ef7840c623
Add SAO coding costs for sao_eo_class, band position and offset sign.
...
- This reduces bdrate a little bit.
- It seems like increasing the bit cost of using SAO in general
increases bdrate.
2014-04-15 21:24:44 +03:00
Ari Koivula
9ff32c566c
Adjust SAO mode coding cost for zero offsets.
...
- Coding zero with TR only takes one bit.
- Even though offset 0 should be fairly common, this doesn't seem to help very
much and actually increases bdrate on some sequences.
2014-04-15 21:21:31 +03:00
Ari Koivula
67a3d5542c
Add better delta distortion calculation to sao.
2014-04-15 21:17:29 +03:00
Ari Koivula
8c4796e56e
Calculate edge and band sao separately.
2014-04-15 21:16:55 +03:00
Ari Koivula
1017c6639c
Move band and edge sao to their own functions.
2014-04-15 21:14:59 +03:00
Laurent Fasnacht
9f3aeed6be
Fix pixel access in sao
2014-04-14 15:40:06 +02:00
Laurent Fasnacht
78c579053a
encoder_control should be const in nearly all the code
2014-04-14 10:56:06 +02:00
Ari Koivula
d44d1837bb
Remove unreferenced parameters.
...
- Working towards issue #11 .
2014-04-04 12:56:24 +03:00
Ari Koivula
953aef0379
Move rest of LCU encoding inside the LCU loop.
...
- Move SAO search inside the LCU loop.
- Move CU coding inside the LCU loop.
- Move SAO frame reconstruction loop to sao module.
2014-03-21 12:41:44 +02:00
Ari Koivula
db4402e8d6
Fix for SAO band offset merge cost calculation.
...
Gives a tiny improvement to both bit rate and psnr.
2014-02-22 16:08:39 +02:00
Marko Viitanen
34f558ddd7
Fixed SAO cost checking, disabling SAO when RD-cost is 0
...
Decreases overall BD-rate a bit more, this fix prevents coding zero offsets to the bitstream
2014-02-21 17:43:15 +02:00
Luca Barbato
d07e12dbf0
sao: Add correct header
...
abs is part of stdlib.h
2014-02-21 15:07:56 +01:00
Luca Barbato
ba494e19c5
sao: Constantize *_list
2014-02-21 15:07:15 +01:00
Luca Barbato
8fbb26975e
sao: Drop unused variable
2014-02-21 15:07:15 +01:00
Luca Barbato
f314c9b8c0
sao: Staticize
2014-02-21 15:07:11 +01:00
Luca Barbato
934a4e3b88
whitespace: Drop trailing spaces
2014-02-21 15:03:35 +01:00
Marko Viitanen
e3a528df2e
Added rate cost to SAO mode selection calculations
...
Decreased BD-rate 1% on LP configuration with 600 frames of BQMall, QP 22,27,32,37
Merge check is now performed in a function to ease the checking
2014-02-21 15:54:56 +02:00
Marko Viitanen
f1f293ae0c
Implemented SAO merging
2014-02-21 13:20:54 +02:00
Marko Viitanen
13dc95a164
Implemented band SAO reconstruction
2014-02-21 11:52:41 +02:00
Marko Viitanen
e4880aa4b7
Fixed SAO bitstream generation and band offset a bit
2014-02-20 17:22:33 +02:00
Marko Viitanen
5d946c774a
Implemented draft SAO band offset functions
2014-02-20 16:08:09 +02:00
Ari Koivula
40ed25de7e
Fix compiler warnings for VS2010 /W4 in sao.c.
...
- Working towards issue #11 .
2014-02-06 16:06:24 +02:00
Ari Koivula
77339efa57
Add COPYING file and add boilerplate for copyright and GPLv2 to every file.
2014-01-24 12:48:48 +02:00
Ari Koivula
80064d3834
Streamline SAO to have less duplicated code.
2013-11-14 15:38:19 +02:00
Ari Koivula
61232b466c
Move types to more appropriate places.
2013-11-12 12:44:58 +02:00
Ari Koivula
3af65b8477
Add SAO searching and reconstruction for chroma.
...
One I frame and 99 P frames encoded with SAO off and on.
Processed 100 frames, 6693224 bits AVG PSNR: 30.7248 37.8978 37.8287
Processed 100 frames, 6295072 bits AVG PSNR: 32.2511 38.9373 38.9818
2013-11-12 11:55:39 +02:00
Ari Koivula
84cd618daf
Add calculation of SAO-offsets for non-LCU sized CUs. Luma SAO works now.
2013-11-11 09:49:49 +02:00
Ari Koivula
692ef3e9d9
Add guard against illegal SAO edge offsets.
2013-11-08 16:13:48 +02:00
Ari Koivula
22d21ffac2
Enable SAO search.
...
-Add guard to reconstruction to avoid reconstructing LCUs with no sao type.
-Add temporary guard to SAO search to skip LCUs can't be handled yet.
2013-11-08 15:39:01 +02:00
Ari Koivula
8b0eb66555
Fix bug in SAO reconstruction.
2013-11-08 15:04:53 +02:00
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
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
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
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