Commit graph

119 commits

Author SHA1 Message Date
Marko Viitanen 36eab9c170 New cabac context models with "rate" 2019-03-27 12:38:19 +02:00
Marko Viitanen 3bdc8ac8d3 Fix intra_chroma_pred_mode and cbf contexts 2019-03-26 09:10:09 +02:00
Marko Viitanen f3acd245ae New cabac coding function: kvz_cabac_encode_trunc_bin 2019-03-20 15:17:54 +02:00
Marko Viitanen 052080747e New CABAC functions 2019-03-20 09:06:26 +02:00
Marko Viitanen 63760ca0cf Use kvz_cabac_bins_verbose flag to control cabac debug printing 2018-09-26 12:01:23 +03:00
Marko Viitanen a7ca09108c Improve CABAC debugging by including similar info as in VTM 2018-09-10 11:00:00 +03:00
Marko Viitanen 49a116ed3a Bugfix correct array sizes for cu_ctx_last_x/y 2018-08-30 16:14:08 +03:00
Marko Viitanen 4429e0b89d Expand cu_sig_coeff_group_model according to VVC 2018-08-29 16:20:34 +03:00
Sami Ahovainio 578122ed43 Context changes for chroma pred modes. BT flag init and chroma pred mode init moved inside a loop. 2018-08-29 16:00:08 +03:00
Marko Viitanen 7f119e8bdd Added new ctx models for sig, parity and gtx, removed models for one and abs 2018-08-29 15:57:40 +03:00
Marko Viitanen 46d02c1734 Implemented JVET-K0072 based cbf context selections 2018-08-29 10:12:07 +03:00
Sami Ahovainio 5baab86597 Added BT split flags 2018-08-14 15:28:06 +03:00
Marko Viitanen 90174f1143 Add more values to cabac debugging 2018-07-27 13:59:54 +03:00
Marko Viitanen c6572d644f Updated split_flag initialization to support Large CTUs in VVC 2018-07-27 12:32:45 +03:00
Marko Viitanen 6921e31502 Fix debugging functions 2018-07-27 11:03:16 +03:00
Ari Koivula 04cd875b2c Move substream finalization to LCU coding job
Having some of the termination bits in the LCU coding and some in the
substream finalization was needlessly confusing. Doing substream
finalization directly after LCU coding makes it easy to verify that the
finalization is done correctly.

Removes one job per WPP row from the job queue.

Removes kvz_cabac_flush, because I don't like bits being put into the
bitstream implicitly. Better to have it all in the open.
2017-01-31 13:01:57 +02:00
Arttu Ylä-Outinen 71633889ce Enable CU QP delta when using rate control
When rate control is enabled, enable cu_qp_delta_enabled_flag in PPS
with diff_cu_qp_delta_depth set to 0. Also adds code for writing the QP
deltas and a new cabac context.
2017-01-09 01:24:23 +09:00
Arttu Ylä-Outinen 2113b0182d Enable PPS-level tq bypass flag with --lossless.
Sets transquant_bypass_enable_flag to true in PPS when --lossless is
given.
2016-08-03 14:25:08 +09:00
Arttu Ylä-Outinen e4b5840f56 Add parentheses around macro arguments in cabac.h. 2016-06-22 13:35:15 +09:00
Wassim Hamidouche 73c3203a26 encry coef transfs 2016-06-09 10:49:31 +03:00
Wassim Hamidouche 02308d1ba6 add MVs encryption 2016-06-07 10:28:30 +02:00
Ari Koivula 4876879b82 Add IWYU pragmas 2016-03-31 12:33:34 +03:00
Ari Koivula 947bae24f9 Update Doxygen documentation
Add module information to all header files.

Update all header file documentations to briefly say what they are, and
to use the javadoc format so the brief actually gets included into the
doxygen documentation.

Remove \file from implementation files, in order to not repeat the info
from the header files.

Add files under strategies and tools to Doxygen and update the Doxygen
settings to be just plain better.

Make README be the main page of Doxygen documentation.
2015-12-17 14:05:50 +02:00
Arttu Ylä-Outinen 3a10e9e3e0 Prefix all non-static symbols with "kvz_". 2015-08-26 13:02:28 +03: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 18d9789fab Cabac context array for inter direction 2015-03-06 16:26: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
Ari Koivula 8cd8240f7a Rename struct bitstream to bitstream_t. 2015-03-04 14:01:15 +02:00
Ari Koivula d7383ccb25 Change license to LGPL.
- Everyone who has contributed code to the project has been asked to license
  their contributions under LPGL and they have agreed.

- COPYING file changed to say LGPLv2.1 instead of GPLv2.

- GPL changed to LGPL in the header of every single file that a header and
  header added to the few that were missing one.

- Also.. Happy new year!
2015-02-25 15:19:05 +02:00
Ari Koivula 4e052d3f0f Wrap contexts of cabac_data inside cabac_data.ctx struct. 2014-09-24 01:02:37 +03:00
Ari Koivula b339004c4c Rename cabac_state.ctx to cur_ctx. 2014-09-24 01:02:28 +03:00
Ari Koivula 35b2e6f755 Add missing cabac context for chroma cbf.
- The context was also missing from HM, but has been fixed in HM13.
2014-09-15 15:41:44 +03:00
Ari Koivula ab4041c8fc Change cabac debug statements to show information better.
- Show the number of bits when encoding multiple bins. I would like just the
  bits them selves in string form, but that's too much trouble for this.

- Print then as unsigned and coerce them to unsigned, as they are going
  get coerced to unsigned by the function call anyway.

- Change state to be less verbose.
2014-05-16 05:44:03 +03:00
Laurent Fasnacht 122576fe8b some const in cabac.c 2014-04-17 11:13:11 +02:00
Marko Viitanen e15a86268d Clean up tabs and whitespaces 2014-04-04 16:04:44 +03:00
Laurent Fasnacht 816ae13b1d Moved context information inside cabac_data.
This is required in order to be able to work on parallelism.
2014-04-04 14:28:50 +02:00
Laurent Fasnacht 8a14bd3b7b Remove cabac global variable 2014-04-04 14:26:40 +02:00
Marko Viitanen b09854d964 Implemented RDO function to calculate bits used for coefficient coding 2014-04-04 13:09:42 +03:00
Ari Koivula 47af5207c5 Remove dead code and fix white space. 2014-03-06 18:35:17 +02:00
Ari Koivula f4d5370e8b Fix compiler warnings for VS2010 /W4 in context.c and rdo.c.
- Working towards issue #11.
- Moved all const arrays from .h to the .c. These are not used anywhere else.
- Moved entropy_bits array and its helper macro to rdo.c. They are not used
  anywhere else.
- Implicit conversions to explicit ones.
2014-02-06 17:57:41 +02:00
Marko Viitanen de6faf623d Imported entropy bits array from HM and added macro to access it 2014-01-27 14:34:57 +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 66fe302520 Fix cabac context for sao. HM accepts encoded sao. 2013-11-04 13:03:51 +02:00
Ari Koivula 30c16fe299 Remove unused members from cabac_data.
- Removing them also makes cabac_init unnecessary.
2013-09-20 15:04:02 +03:00
Ari Koivula 996769c725 Refactor: Move ctx_init from cabac to context. 2013-09-19 12:47:39 +03:00
Ari Koivula d47391163c Refactoring: Remove array g_next_state from cabac.h.
- This array is no longer used. Macros CTX_UPDATE_LPS and CTX_UPDATE_MPS are
  used instead.
2013-09-19 12:41:36 +03:00
Ari Koivula b25abe7c0b Refactor: cabac.c/.h full cleanup. 2013-09-19 12:38:11 +03:00
Ari Koivula f4833ba931 Refactor: cabac.c renaming. 2013-09-19 11:05:42 +03:00
Ari Koivula 627762dcd8 Refactor: Fix include guards.
- Remove _ from the beginning of include guards because that prefix is
  for the implementation.
- Move include guards to the beginning of file.
- Unify the syntax.
2013-09-19 10:36:24 +03:00
Ari Koivula adf619f9dd Refactor: Update file comments. 2013-09-18 18:01:20 +03:00
Ari Koivula 81cb6264ab Refactor: cabac.h renaming. 2013-09-18 14:06:45 +03:00
Ari Koivula 44a5498e30 Reorder includes to avoid hidden dependencies.
- Includes of global.h have been moved to headers because most headers
  require stdint.h.
- Includes required by the header have been moved from the .c to the header.
- Spaces have been added between includes to distinguish classes of includes.
2013-09-18 12:29:23 +03:00
Marko Viitanen 0f4a720206 Changed parameter from cabac_ctx** to cabac_ctx* in cabac_writeUnaryMaxSymbol() 2013-09-05 15:04:16 +03:00
Marko Viitanen b3a724afb0 Added codes for inter coding 2013-08-02 16:35:30 +03:00
Marko Viitanen 1b007efe43 Fixed bug with 8x8 split_flag coding. 4x4 chroma still produces wrong data. 2013-05-16 15:27:54 +03:00
Marko Viitanen a737e8660c New search.c/.h files and changed department name on all files 2013-04-16 11:23:03 +03:00
Marko Viitanen 3a53654cf4 Added intra prediction, image reconstruction and iTr and iQ. Fixed a bug with negative SE values 2013-03-07 17:42:00 +02:00
Marko Viitanen 3b5e40e7af Added encode_CoeffNxN code and transform functions
Modified contexts
2013-02-05 15:48:06 +02:00
Marko Viitanen 14fed8bac7 Separated context related functions and arrays to context.h/.c 2012-08-15 13:22:31 +03:00
Marko Viitanen 2e3c313932 More work on coeff coding 2012-06-13 18:08:15 +03:00
Marko Viitanen 982170382b Added LastSignificantXY encoding 2012-06-13 15:15:07 +03:00
Marko Viitanen 620541a7fc More context models and work on the intra coding 2012-06-12 17:35:45 +03:00
Marko Viitanen 84af7eddac BugFix: CABAC requires aligned byte, added align after slice_header. 2012-06-08 15:26:07 +03:00
Marko Viitanen 925f4020cd Fixed some CABAC bugs and more work on coding tree 2012-06-07 17:38:28 +03:00
Marko Viitanen 953c04d896 More work on the slice encoding, trying to send some dummy data 2012-06-06 16:20:29 +03:00
Marko Viitanen ef5d210b18 More bitstream functions and better initialization
+ picture.c/.h
2012-06-05 14:01:47 +03:00
Marko Viitanen 92ebb2cd6d CABAC tables and functions 2012-06-04 13:47:12 +03:00
Marko Viitanen 5dcbe3e8df Data structure initialization functions 2012-06-04 11:53:48 +03:00