diff options
author | Daniel Kang <ddkang@google.com> | 2012-08-03 10:22:04 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2012-08-03 10:22:04 -0700 |
commit | e6de9c2e5ddfe36324fbbb4f57971245066a32cf (patch) | |
tree | 2b0823f1626d464a1dbcda1e958dd6a556889f57 /vp8/encoder/encodeintra.c | |
parent | 4aabfaa5d03501ff6887039425d578a08ab3a010 (diff) | |
parent | fed8a1837fd6b1e4e36495be8210bd63bfb2bb8f (diff) | |
download | libvpx-e6de9c2e5ddfe36324fbbb4f57971245066a32cf.tar libvpx-e6de9c2e5ddfe36324fbbb4f57971245066a32cf.tar.gz libvpx-e6de9c2e5ddfe36324fbbb4f57971245066a32cf.tar.bz2 libvpx-e6de9c2e5ddfe36324fbbb4f57971245066a32cf.zip |
Merge "16x16 DCT blocks." into experimental
Diffstat (limited to 'vp8/encoder/encodeintra.c')
-rw-r--r-- | vp8/encoder/encodeintra.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 01ae03a23..325efeb6b 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -160,23 +160,43 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, *(b->base_src), x->e_mbd.predictor, b->src_stride); +#if CONFIG_TX16X16 + if (tx_type == TX_16X16) + vp8_transform_intra_mby_16x16(x); + else +#endif if (tx_type == TX_8X8) vp8_transform_intra_mby_8x8(x); else vp8_transform_intra_mby(x); +#if CONFIG_TX16X16 + if (tx_type == TX_16X16) + vp8_quantize_mby_16x16(x); + else +#endif if (tx_type == TX_8X8) vp8_quantize_mby_8x8(x); else vp8_quantize_mby(x); if (x->optimize) { +#if CONFIG_TX16X16 + if (tx_type == TX_16X16) + vp8_optimize_mby_16x16(x, rtcd); + else +#endif if (tx_type == TX_8X8) vp8_optimize_mby_8x8(x, rtcd); else vp8_optimize_mby(x, rtcd); } +#if CONFIG_TX16X16 + if (tx_type == TX_16X16) + vp8_inverse_transform_mby_16x16(IF_RTCD(&rtcd->common->idct), &x->e_mbd); + else +#endif if (tx_type == TX_8X8) vp8_inverse_transform_mby_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd); else @@ -220,6 +240,9 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { int tx_type = x->e_mbd.mode_info_context->mbmi.txfm_size; +#if CONFIG_TX16X16 + if (tx_type == TX_16X16) tx_type = TX_8X8; // 16x16 for U and V should default to 8x8 behavior. +#endif #if CONFIG_COMP_INTRA_PRED if (x->e_mbd.mode_info_context->mbmi.second_uv_mode == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif |