summaryrefslogtreecommitdiff
path: root/vp8
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2011-11-04 10:59:54 +0000
committerPaul Wilkins <paulwilkins@google.com>2011-11-04 11:06:24 +0000
commitfe38082f4436b35f32b10a1bec06eded3c529428 (patch)
tree7f0f45fc2050f72527439a9a8b0c64963925a5a8 /vp8
parenta258bba1fb6b93cbaf65b8bf3c892bff9fe9ace2 (diff)
downloadlibvpx-fe38082f4436b35f32b10a1bec06eded3c529428.tar
libvpx-fe38082f4436b35f32b10a1bec06eded3c529428.tar.gz
libvpx-fe38082f4436b35f32b10a1bec06eded3c529428.tar.bz2
libvpx-fe38082f4436b35f32b10a1bec06eded3c529428.zip
Segment Features with 8x8DCT.
Temporary check in to turn off other segment features tests when #if CONFIG_T8X8 is set as the assignment of MBs to differnt segments in each case will conflict. The 8x8 code will be modified to use the new segment feature method properly in a later check in. Increase bits allowed for EOB end stop marker to 6 ready for 8x8. Change-Id: I4835bc8d3bf98e1775c3d247d778639c90b01f7f
Diffstat (limited to 'vp8')
-rw-r--r--vp8/common/blockd.h10
-rw-r--r--vp8/common/seg_common.c2
-rw-r--r--vp8/encoder/onyx_if.c10
3 files changed, 21 insertions, 1 deletions
diff --git a/vp8/common/blockd.h b/vp8/common/blockd.h
index fdac08adf..690e0f8c8 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 42dcadaad..bd16c3407 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 1902c7ca1..94ba5484b 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) )