Commit graph

2802 commits

Author SHA1 Message Date
Laurent Fasnacht 677fc2ec7d Fix prototype of create_bitstream in bitstream.h 2014-04-17 11:13:08 +02:00
Ari Koivula 51ba80513b Centralize resource deallocation for encmain.
- CppCheck was complaining about unreleased resources for FILE*. They weren't
  really because they get flushed and closed when program exits normally, but
  let's close them anyway.
2014-04-17 11:58:03 +03:00
Ari Koivula b35f33b3da Address warnings about unused values.
- Related to issue #35.
2014-04-16 18:05:03 +03: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
Laurent Fasnacht ec9d70f70c Moved scalinglist_process into init_encoder_control 2014-04-16 11:45:51 +02:00
Ari Koivula 6e24ba0a5f Merge branch 'sao-mode-cost' 2014-04-16 12:25:05 +03:00
Ari Koivula 7fd2cc7a52 Merge branch 'static_tables' 2014-04-16 12:13:25 +03:00
Ari Koivula 807fae743e Add new modules to VS project. 2014-04-16 12:12:33 +03:00
Laurent Fasnacht e06253d437 scalinglist changes missing in previous commit 2014-04-16 11:00:29 +02:00
Laurent Fasnacht 9901c38dd5 scalinglist in independent file 2014-04-16 10:25:16 +02:00
Ari Koivula 051484f8d8 Remove unused old mode cost estimation from SAO. 2014-04-16 11:19:23 +03:00
Laurent Fasnacht 9112cbb58c Generate and use static tables 2014-04-16 09:49:09 +02:00
Ari Koivula a982800e1b Merge remote-tracking branch 'remotes/lfasnacht/const' 2014-04-16 10:28:31 +03:00
Ari Koivula df5af669f9 Merge remote-tracking branch 'remotes/lfasnacht/makefile_deps' 2014-04-16 10:28:04 +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 960f2cb4b0 g_sig_last_scan -> const uint32_t* 2014-04-15 16:09:52 +02:00
Laurent Fasnacht 288a4537ba const bit_table for exp_golomb 2014-04-15 16:09:52 +02:00
Laurent Fasnacht 763b775d3e encoder_control->cfg is const 2014-04-15 16:09:52 +02:00
Laurent Fasnacht ae2d79c954 Remove encoder_control.cqmfile 2014-04-15 16:09:51 +02:00
Laurent Fasnacht 86c1cf339f Add Makefile to dependencies 2014-04-15 15:47:40 +02:00
Laurent Fasnacht e135a88fb5 Remove encoder_control.cqmfile 2014-04-15 14:21:25 +02:00
Laurent Fasnacht 29c93d8f3f Automatic generation of build dependencies 2014-04-15 13:52:31 +02:00
Laurent Fasnacht 7897f7d5cd Remove counter from debug version of WRITE_*
It's not very useful, and create unneeded noise when trying to make diffs
2014-04-15 11:37:45 +02:00
Laurent Fasnacht f47e23cd24 Allow FREE_POINTER to free const xxx * ptr without warning 2014-04-15 11:37:44 +02:00
Laurent Fasnacht 52ae027b3a Avoid undefined behavior in memcpy calls
"The memcpy() function shall copy n bytes from the object pointed to by s2 into the object pointed to by s1. If copying takes place between objects that overlap, the behavior is undefined."
2014-04-15 06:30:21 +02:00
Laurent Fasnacht 317a3f87a4 Initialize scaling_list_dc (avoids branching on uninitialized value) 2014-04-15 06:19:12 +02:00
Laurent Fasnacht 9f3aeed6be Fix pixel access in sao 2014-04-14 15:40:06 +02:00
Laurent Fasnacht 486768fc79 scalinglist privatization 2014-04-14 13:39:28 +02:00
Marko Viitanen 4949ffea7d Merge pull request #27 from lfasnacht/add_const
encoder_control should be const in nearly all the code
2014-04-14 12:03:45 +03:00
Laurent Fasnacht 78c579053a encoder_control should be const in nearly all the code 2014-04-14 10:56:06 +02:00
Marko Viitanen 0e7a5057d1 Merge pull request #26 from lfasnacht/warnings_fix
Fix warnings and compile with -Werror
2014-04-14 11:30:37 +03:00
Marko Viitanen 04f09a2bc8 Merge pull request #25 from lfasnacht/memory_bitstream
Changed bitstream handling to allow in-memory bitstream.
2014-04-14 11:29:25 +03:00
Laurent Fasnacht 13398e011b Fix create_bitstream() 2014-04-14 10:23:09 +02:00
Laurent Fasnacht 64f3f57af3 Compile with -Werror 2014-04-14 09:38:37 +02:00
Laurent Fasnacht 89ef1161c4 Fix warnings 2014-04-14 09:37:39 +02:00
Laurent Fasnacht baba299bb8 Obviously a void function cannot return NULL 2014-04-14 09:11:15 +02:00
Marko Viitanen 184ce38755 Merge pull request #24 from lfasnacht/fix_free_exp_golomb_warning
Simple fix
2014-04-14 09:50:36 +03:00
Laurent Fasnacht 418e6eae51 Changed bitstream handling to allow in-memory bitstream. 2014-04-14 08:13:00 +02:00
Laurent Fasnacht 520dbdd86d Change return type of free_exp_golomb to be void, and add it to bitstream.h 2014-04-14 06:41:27 +02:00
Ari Koivula 29787efbbc Fix whitespace.
Fix some whitespace issues from a merge.
2014-04-11 17:06:21 +03:00
Ari Koivula 83d5a4753d Move input resolution to the same line as internal resolution.
The \n must have been left there by accident.
2014-04-11 16:55:08 +03:00
Ari Koivula 0b5c357795 Move all output to stderr.
It has to be in stderr to allow piping bitstream from stdout.
2014-04-11 16:50:59 +03:00