picture.type -> encoder_state->global->pictype
picture.slicetype -> encoder_state->global->slicetype
picture.slice_sao_luma_flag -> 1 (was constant)
picture.slice_sao_chroma_flag -> 1 (was constant)
This may be changed later. For now it's better to avoid having slice related stuff in picture.
transform skip vs. normal transform selection criteria might need more work, currently both are calculated for each 4x4 block and SAD+coeff_SSE is compared.
The relation between coefficients positions and coefficient group positions
was a big confusing due to the use of 16x16 diagonal coefficient mappings
also as coefficient group mappings.
- Moved all coefficient group mappings to their own const arrays and added
a new array the select the correct coefficient group mapping. This removes
special cases for 8x8 and 32x32 transform sizes.
- Removed all coefficient group mapping initialization from init_sig_last_scan.
- Removed 128x128 and 64x64 from regular coefficient group array as those
transform sizes don't exist anymore in HEVC.
- 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.
- 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.
- Reimplement bit filling routines to copy bits form the edge, instead of
using a constant.
- Add real_width and real_height to encoder_input and store the actual input
resolution in them instead of in encoder_input.width and height. This fixed
a crash. It's also clearer.
- Correctly scale conf_win offsets to be in terms of chroma.