summaryrefslogtreecommitdiff
path: root/vp8/encoder/encodeintra.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/encoder/encodeintra.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/encoder/encodeintra.c')
-rw-r--r--vp8/encoder/encodeintra.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c
index 424dc72db..ee1e87847 100644
--- a/vp8/encoder/encodeintra.c
+++ b/vp8/encoder/encodeintra.c
@@ -97,18 +97,24 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
{
BLOCK *b = &x->block[0];
+#if CONFIG_T8X8
+ int tx_type = get_seg_tx_type(&x->e_mbd,
+ x->e_mbd.mode_info_context->mbmi.segment_id);
+#endif
+
RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_mby)(&x->e_mbd);
ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, *(b->base_src), x->e_mbd.predictor, b->src_stride);
+
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if( tx_type == TX_8X8 )
vp8_transform_intra_mby_8x8(x);
else
#endif
vp8_transform_intra_mby(x);
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_quantize_mby_8x8(x);
else
#endif
@@ -117,7 +123,7 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
if (x->optimize)
{
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if( tx_type == TX_8X8 )
vp8_optimize_mby_8x8(x, rtcd);
else
#endif
@@ -125,7 +131,7 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
}
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_inverse_transform_mby_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd);
else
#endif
@@ -169,18 +175,23 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
{
+#if CONFIG_T8X8
+ int tx_type = get_seg_tx_type(&x->e_mbd,
+ x->e_mbd.mode_info_context->mbmi.segment_id);
+#endif
+
RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_mbuv)(&x->e_mbd);
ENCODEMB_INVOKE(&rtcd->encodemb, submbuv)(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride);
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_transform_mbuv_8x8(x);
else
#endif
vp8_transform_mbuv(x);
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_quantize_mbuv_8x8(x);
else
#endif
@@ -220,7 +231,7 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
if (x->optimize)
{
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_optimize_mbuv_8x8(x, rtcd);
else
#endif
@@ -228,7 +239,7 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
}
#if CONFIG_T8X8
- if(x->e_mbd.mode_info_context->mbmi.segment_id >= 2)
+ if(tx_type == TX_8X8)
vp8_inverse_transform_mbuv_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd);
else
#endif