diff options
author | Paul Wilkins <paulwilkins@google.com> | 2011-10-05 11:26:00 +0100 |
---|---|---|
committer | Paul Wilkins <paulwilkins@google.com> | 2011-10-24 15:52:18 +0100 |
commit | 01ce04bc06d34a3d58cd900664d233f41e6e06d0 (patch) | |
tree | a1483e8aad14036bdc3fbf08e8e4128d2c6b3c5f /vp8/encoder/variance.h | |
parent | 152ce6b2b901279d1154ef45e8b387eb23cad3a0 (diff) | |
download | libvpx-01ce04bc06d34a3d58cd900664d233f41e6e06d0.tar libvpx-01ce04bc06d34a3d58cd900664d233f41e6e06d0.tar.gz libvpx-01ce04bc06d34a3d58cd900664d233f41e6e06d0.tar.bz2 libvpx-01ce04bc06d34a3d58cd900664d233f41e6e06d0.zip |
Further segment feature extensions.
This quite large check in includes the following:
Merge in some code from Ronald (mbgraph.c) that scans a Gf/arf group.
This is used as a basis for a simple segmentation for the normal frames
in a gf/arf group. This code also uses satd functions from Yaowu.
Adds functionality for coding the latest possible position of an EOB for
blocks in the segment. (Currently 0-15 only, hence just for 4x4 dct).
Where the EOB position is 0 this acts like "skip" and the normal coding
of skip at the per mb level is disabled.
Added functions (seg_common.c) for setting and reading segment feature
elements. These may want to be optimized away at some point but while the
mecahnism is in a state of flux they provide a single location for making
changes and keep things a bit cleaner.
This is still proof of concept code. Currently the tested feature set:-
Quantizer,
Loop Filter level,
Reference frame,
Prediction Mode,
EOB end stop.
TBD:-
Add functions for setting and reading the feature data with range
and validity checking.
Handling of signed and unsigned feature data. At the moment all is assumed
to be signed and a sign bit is coded but many cannot be negative.
Correct handling of EOB feature with intra coded blocks.
Testing/trapping of legal/illegal ref frame and mode combinations.
Transform size switch plus merge and test with 8c8 DCT work
Merge and test with Sumans Segmenation coding optimizations
Change-Id: Iee12e83661c7abbd1e0ce6810915eb4ec35e2d8e
Diffstat (limited to 'vp8/encoder/variance.h')
-rw-r--r-- | vp8/encoder/variance.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/vp8/encoder/variance.h b/vp8/encoder/variance.h index d9bf66975..711e81406 100644 --- a/vp8/encoder/variance.h +++ b/vp8/encoder/variance.h @@ -330,6 +330,11 @@ extern prototype_ssimpf(vp8_ssimpf_8x8) #endif extern prototype_ssimpf(vp8_ssimpf_16x16) +#ifndef vp8_variance_satd16x16 +#define vp8_variance_satd16x16 vp8_satd16x16_c +#endif +extern prototype_variance(vp8_variance_satd16x16); + typedef prototype_sad(*vp8_sad_fn_t); typedef prototype_sad_multi_same_address(*vp8_sad_multi_fn_t); typedef prototype_sad_multi_same_address_1(*vp8_sad_multi1_fn_t); @@ -397,6 +402,7 @@ typedef struct vp8_ssimpf_fn_t ssimpf_16x16; #endif + vp8_variance_fn_t satd16x16; } vp8_variance_rtcd_vtable_t; typedef struct |