diff --git a/vp8/common/blockd.h b/vp8/common/blockd.h index fdac08adf586ffa1500bdc248d3e0079335abd3e..690e0f8c8492921564a1ad80f9ce04fd8c5c1e15 100644 --- a/vp8/common/blockd.h +++ b/vp8/common/blockd.h @@ -113,6 +113,16 @@ typedef enum } SEG_LVL_FEATURES; +// Segment level features. +typedef enum +{ + TX_4X4 = 0, // 4x4 dct transform + TX_8X8 = 1, // 8x8 dct transform + + TX_SIZE_MAX = 2 // Number of differnt transforms avaialble + +} TX_SIZE; + #define VP8_YMODES (B_PRED + 1) #define VP8_UV_MODES (TM_PRED + 1) #define VP8_I8X8_MODES (TM_PRED + 1) diff --git a/vp8/common/seg_common.c b/vp8/common/seg_common.c index 42dcadaad5b5f24d3d44447baa21fa6024a1f763..bd16c34078b1f6aa758e1944dbd158470f76810e 100644 --- a/vp8/common/seg_common.c +++ b/vp8/common/seg_common.c @@ -12,7 +12,7 @@ //#if CONFIG_SEGFEATURES const int segfeaturedata_signed[SEG_LVL_MAX] = {1, 1, 0, 0, 0, 0}; -const int vp8_seg_feature_data_bits[SEG_LVL_MAX] = {7, 6, 4, 4, 4, 2}; +const int vp8_seg_feature_data_bits[SEG_LVL_MAX] = {7, 6, 4, 4, 6, 2}; // These functions provide access to new segment level features. // Eventually these function may be "optimized out" but for the moment, diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 1902c7ca147d857ff381dfbd721ce9f8043319a0..94ba5484bfdaf9a4c531b36556b0620786e17dcf 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -481,6 +481,16 @@ static void init_seg_features(VP8_COMP *cpi) (cpi->cq_target_quality > 16 ) ) || (cpi->ni_av_qi > 32); +#if CONFIG_T8X8 + // TODO + // For now 8x8TX mode just set segments up for 8x8 and 4x4 modes and exit. + //enable_segfeature(xd, 0, SEG_LVL_TRANSFORM); + //set_segdata( xd, 0, SEG_LVL_TRANSFORM, TX_4X4 ); + //enable_segfeature(xd, 1, SEG_LVL_TRANSFORM); + //set_segdata( xd, 1, SEG_LVL_TRANSFORM, TX_8X8 ); + return; +#endif + // For now at least dont enable seg features alongside cyclic refresh. if ( cpi->cyclic_refresh_mode_enabled || (cpi->pass != 2) )