summaryrefslogtreecommitdiff
path: root/vp8/decoder/decodframe.c
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2011-11-04 18:29:51 +0000
committerPaul Wilkins <paulwilkins@google.com>2011-11-08 12:21:08 +0000
commita9df4183a6587719c9530d45d5dbd81530be9e7b (patch)
tree8365dc0ee269bb85de4354f5e65dd2b3f25e7890 /vp8/decoder/decodframe.c
parentf82d601f94a2fef69a0a12790c5fcdf49bbbdf2c (diff)
downloadlibvpx-a9df4183a6587719c9530d45d5dbd81530be9e7b.tar
libvpx-a9df4183a6587719c9530d45d5dbd81530be9e7b.tar.gz
libvpx-a9df4183a6587719c9530d45d5dbd81530be9e7b.tar.bz2
libvpx-a9df4183a6587719c9530d45d5dbd81530be9e7b.zip
Segment signaling of TX size
Initial attempt at using new segment feature signaling to indicate 4x4 or 8x8 transform. needs --enable-experimental --enable-t8x8 Note this is work in progress. Change-Id: Ib160d46a5d810307bfcbc79853ce1a65b5b870b7
Diffstat (limited to 'vp8/decoder/decodframe.c')
-rw-r--r--vp8/decoder/decodframe.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c
index 4fdc3ea3d..aa079d8bd 100644
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -78,7 +78,6 @@ void mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd)
VP8_COMMON *const pc = & pbi->common;
int segment_id = xd->mode_info_context->mbmi.segment_id;
-
// Set the Q baseline allowing for any segment level adjustment
//#if CONFIG_SEGFEATURES
if ( segfeature_active( xd, segment_id, SEG_LVL_ALT_Q ) )
@@ -210,6 +209,11 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
MB_PREDICTION_MODE mode;
int i;
+#if CONFIG_T8X8
+ int tx_type = get_seg_tx_type(xd, xd->mode_info_context->mbmi.segment_id);
+#endif
+
+
if (xd->mode_info_context->mbmi.mb_skip_coeff)
{
vp8_reset_mb_tokens_context(xd);
@@ -223,8 +227,10 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
xd->block[i].eob = 0;
xd->eobs[i] = 0;
}
- if (xd->mode_info_context->mbmi.segment_id >= 2)
+ if ( tx_type == TX_8X8 )
+ {
eobtotal = vp8_decode_mb_tokens_8x8(pbi, xd);
+ }
else
#endif
eobtotal = vp8_decode_mb_tokens(pbi, xd);
@@ -392,7 +398,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
else if (mode == SPLITMV)
{
#if CONFIG_T8X8
- if(xd->mode_info_context->mbmi.segment_id >= 2)
+ if ( tx_type == TX_8X8 )
{
DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block_8x8)
(xd->qcoeff, xd->block[0].dequant,
@@ -416,7 +422,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
/* do 2nd order transform on the dc block */
#if CONFIG_T8X8
- if(xd->mode_info_context->mbmi.segment_id >= 2)
+ if( tx_type == TX_8X8 )
{
DEQUANT_INVOKE(&pbi->dequant, block_8x8)(b);
#ifdef DEC_DEBUG
@@ -474,7 +480,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
}
}
#if CONFIG_T8X8
- if(xd->mode_info_context->mbmi.segment_id >= 2)
+ if( tx_type == TX_8X8 )
{
DEQUANT_INVOKE (&pbi->dequant, idct_add_uv_block_8x8)//
(xd->qcoeff+16*16, xd->block[16].dequant,