Laurent Fasnacht
b740142325
Add is_leaf to encoder_state
2014-05-08 15:04:48 +02:00
Laurent Fasnacht
8451d5b100
Move some init code to encoder_state_new_frame
2014-05-08 15:04:48 +02:00
Laurent Fasnacht
1cb3f14dfe
lcu_order_count in (leaves) encoder
2014-05-08 15:04:47 +02:00
Laurent Fasnacht
ef6ae3e723
Remove dead code
2014-05-08 15:04:46 +02:00
Ari Koivula
f890ffb1e5
Update SConstruct to work with mingw64.
...
- 64bit mingw64 needs TMP.
- Also add openmp and -march=native, as those are also in the makefile.
- Might help with #54 .
2014-05-07 18:49:49 +03:00
Ari Koivula
5890dd5350
Merge branch 'refactor_encoder_state'
2014-05-07 15:29:30 +03:00
Ari Koivula
535b42bc9b
Fix compilation for VS2010.
2014-05-07 15:26:44 +03:00
Laurent Fasnacht
05eef82896
Remove extra [ from graphviz dump
2014-05-07 13:40:29 +02:00
Laurent Fasnacht
84e5dbee39
Remove quote from graphviz dump
2014-05-07 13:33:02 +02:00
Laurent Fasnacht
b48a687d3c
Restored parallelism, but it will be done in another way... OpenMP is not very efficient in these kind of dynamic situation
2014-05-07 11:55:56 +02:00
Laurent Fasnacht
0e6f1c99fc
Refactor picture to remove hidden dependency between slice and tiles
...
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.
2014-05-07 11:55:48 +02:00
Laurent Fasnacht
39d96e0546
Fix bug with cabac stream pointing to bad data
2014-05-07 11:55:41 +02:00
Laurent Fasnacht
e144f817ef
Works when not using tiles
2014-05-07 11:55:16 +02:00
Laurent Fasnacht
24c2bd70ca
Fix small bugs with compilation
2014-05-07 11:54:35 +02:00
Laurent Fasnacht
a03f0cba19
encoder_control_input_init near the other encoder_control_* functions
2014-05-07 11:53:21 +02:00
Laurent Fasnacht
1e2671ac30
Renamed encoder_clear_refs to encoder_state_clear_refs
2014-05-07 11:53:12 +02:00
Laurent Fasnacht
831b221cf8
Parsing seems to work now
2014-05-07 11:53:01 +02:00
Laurent Fasnacht
8b5cb62237
Debug code to generate a graph
2014-05-07 11:52:04 +02:00
Laurent Fasnacht
cee6bb0e71
Fix iteration on children
2014-05-07 11:49:14 +02:00
Laurent Fasnacht
699669ee35
fixed typo
2014-05-07 11:48:16 +02:00
Laurent Fasnacht
6c6adf18c7
Refactor encoder_state
2014-05-07 11:47:31 +02:00
Laurent Fasnacht
a23edd0339
added parent to encoder_state
2014-05-07 11:42:54 +02:00
Laurent Fasnacht
5ce518a47a
lcu_at_tile_start and lcu_at_tile_end helper functions
2014-05-07 11:42:30 +02:00
Laurent Fasnacht
c2872bd6b0
Slices and WPP in command line and encoder
2014-05-07 11:42:04 +02:00
Laurent Fasnacht
2d6f199246
reorganized encoder_state structure
2014-05-07 11:41:27 +02:00
Laurent Fasnacht
f0b076876f
Moved all the stream related stuff into substream_write_bitstream
2014-05-07 11:40:20 +02:00
Laurent Fasnacht
f30b9c2a11
Fix a buffer overflow in parse_tiles_specification
2014-05-07 11:39:45 +02:00
Ari Koivula
eaf8835bda
Add some comments and const qualifiers.
2014-05-06 19:20:38 +03:00
Ari Koivula
3910b7989a
Clear old cbf data before recursion in encode_transform_tree.
...
- Because encode_transform_tree also maintains the CBF data and assumes that
the CBFs are initially zeroed, calling the function more than once would
result in incorrect CBF data.
2014-05-06 19:03:29 +03:00
Ari Koivula
bdc16d2612
Improve cu_info coded block flag data structure a bit.
...
- It works just like the old structure except that the flags are checked with
bitmasks instead of having the flag value be propagated upwards. There isn't
really any benefit to this because the flags still have to be propagated to
parent CUs.
- Wrapped them inside a struct to make copying them easier. (Just need to copy
the struct instead of making individual copies)
2014-05-06 18:28:04 +03:00
Ari Koivula
d123b98aea
Remove unnecessary tertiary expressions from usages of CABAC_BIN.
2014-05-06 17:39:25 +03:00
Ari Koivula
380401b2eb
Have CABAC_BIN accept any >0 as binary 1.
...
It used to treat odd numbers as false.
2014-05-06 17:39:10 +03:00
Marko Viitanen
346fa86c9c
Merge commit 'bf2c2a1330ce6eb093afe0c03eb3a99520a41e4b'
2014-05-05 11:21:46 +03:00
Marko Viitanen
bf2c2a1330
Small changes to fix compiling on VS
...
- Added threads.h to VS project
- Included Windows.h in threads.h
2014-05-05 11:18:43 +03:00
Laurent Fasnacht
f3d4e6eb09
Move bitstream write to a separate function, and add assertions about the part which should not write to bitstream.
2014-05-05 09:24:57 +02:00
Laurent Fasnacht
0fe080ad0a
bitstream_tell
2014-05-05 08:53:06 +02:00
Laurent Fasnacht
7f6f4fe9c1
Reference count for picture
2014-05-05 08:03:24 +02:00
Laurent Fasnacht
323054d5e2
naming: alloc_yuv_t -> yuv_t_alloc dealloc_yuv_t -> yuv_t_free
2014-05-02 11:45:27 +02:00
Laurent Fasnacht
7d6d1d5536
Remove pic->pred_*
2014-05-02 11:38:07 +02:00
Laurent Fasnacht
92e14cc80d
rename picture_init to picture alloc and picture_destroy to picture_free
2014-05-02 10:58:28 +02:00
Laurent Fasnacht
b76f7377b6
Always initialize tiles data structures (even with only one tile)
2014-05-02 10:00:22 +02:00
Laurent Fasnacht
f97e60a80d
Doc for encoder state
2014-05-02 10:00:12 +02:00
Laurent Fasnacht
161fe38f5e
Remove USE_TILES define
2014-05-01 13:58:13 +02:00
Laurent Fasnacht
a84fd6486d
Add function subencoder_blit_pixels
2014-05-01 11:16:11 +02:00
Laurent Fasnacht
b8b28635ff
Iterable structure for sub-encoders (more flexibility)
2014-05-01 11:16:10 +02:00
Laurent Fasnacht
212d390003
Cleanup of encoder_state_init and encoder_state_finalize
2014-05-01 11:16:10 +02:00
Laurent Fasnacht
161053f86b
Do not allow more tiles than dimension in LCU
2014-05-01 07:11:31 +02:00
Ari Koivula
42295d3cb9
Pass preprocessor defines for supported intrinsics in VS2010 explicitly.
...
- _M_IX86_FP defines whether VS should generate code using SSE or SSE2
instructions. It isn't correct to use it to check whether optional runtime
optimizations should be compiled in. It's also not defined at all in 64-bit
mode.
- So let's just keep it simple and give a list of everything that is supported
as release optimizations. It's not clear from the documentation if all of
these are really supported. It just list a bunch of intrinsics from these
that are.
2014-04-30 17:41:15 +03:00
Ari Koivula
d1fbc6dc80
Fix a small memory leak.
...
- Malloced pointer returned by alloc_yuv_t was not being freed in
substream_encode.
- Remove use of yuv_t from encode_one_frame, as it's not used there anymore.
2014-04-30 11:15:34 +03:00
Ari Koivula
d808fe3b02
Merge branch 'strategy_selector'
2014-04-29 15:36:48 +03:00