]> granicus.if.org Git - libvpx/commit
Further work on Segmentation Experiment:
authorPaul Wilkins <paulwilkins@google.com>
Tue, 15 Nov 2011 11:13:33 +0000 (11:13 +0000)
committerPaul Wilkins <paulwilkins@google.com>
Tue, 15 Nov 2011 11:13:33 +0000 (11:13 +0000)
commit661b2c2dcf59bb56535332dcc88212ef8499b33f
tree5f3ab27a180877d15c29b31a7313fcf0b5ee9883
parentc9130bdbbcf833595d9f3efd9bbcdb51575245d9
Further work on Segmentation Experiment:

This check in includes quite a lot of clean up and refactoring.

Most of the analysis and set up for the different coding options for the
segment map (currently simple distribution based coding or temporaly
predicted coding), has been moved to one location (the function
choose_segmap_coding_method() in segmenation.c). This code was previously
scattered around in various locations making integration with other
experiments and modification / debug more difficult.

Currently the functionality is as it was with the exception that the
prediction probabilities are now only transmitted when the temporal
prediction mode is selected.

There is still quite a bit more clean up work that will be possible
when the #ifdef is removed. Also at that time I may rename and alter
the sense of macroblock based variable "segment_flag" which indicates
(1 that the segmnet id is not predicted vs 0 that it is predicted).

I also intend to experiment with a spatial prediction mode that can be
used when coding a key frame segment map or in cases where temporal
prediction does not work well but there is spatial correlation.

In a later check in when the ifdefs have gone I may also move the call
to choose_segmap_coding_method() to just before where the bitsream is
packed (currently it is in vp8_encode_frame()) to further reduce the
possibility of clashes with other experiments and prevent it being called
on each itteration of the recode loop.

Change-Id: I3d4aba2a2826ec21f367678d5b07c1d1c36db168
vp8/common/blockd.h
vp8/decoder/decodemv.c
vp8/decoder/decodframe.c
vp8/encoder/bitstream.c
vp8/encoder/encodeframe.c
vp8/encoder/onyx_if.c
vp8/encoder/onyx_int.h
vp8/encoder/segmentation.c
vp8/encoder/segmentation.h