summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeintra.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2013-02-06 14:13:05 -0800
committerRonald S. Bultje <rbultje@google.com>2013-02-06 16:13:02 -0800
commit5cfd82bcaf666c1b9cacd8a4899fc703598aa5b0 (patch)
tree96d107dfec3e185d4e36d2eff08109c6e41c4ce4 /vp9/encoder/vp9_encodeintra.c
parentaac73df1a7b2e84e1930fa63ac6d7983cfdba543 (diff)
downloadlibvpx-5cfd82bcaf666c1b9cacd8a4899fc703598aa5b0.tar
libvpx-5cfd82bcaf666c1b9cacd8a4899fc703598aa5b0.tar.gz
libvpx-5cfd82bcaf666c1b9cacd8a4899fc703598aa5b0.tar.bz2
libvpx-5cfd82bcaf666c1b9cacd8a4899fc703598aa5b0.zip
Use fdct8x4 instead of fdct4x4 where the block size allows it.
This allows for faster SIMD implementations in the future (currently there is no speed impact). Change-Id: I732647e9148b5dcb44e6bc8728138f0141218329
Diffstat (limited to 'vp9/encoder/vp9_encodeintra.c')
-rw-r--r--vp9/encoder/vp9_encodeintra.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encodeintra.c b/vp9/encoder/vp9_encodeintra.c
index 09ea045d7..eacc2cd28 100644
--- a/vp9/encoder/vp9_encodeintra.c
+++ b/vp9/encoder/vp9_encodeintra.c
@@ -168,6 +168,12 @@ void vp9_encode_intra8x8(MACROBLOCK *x, int ib) {
vp9_fht_c(be->src_diff, 32, be->coeff, tx_type, 4);
vp9_ht_quantize_b_4x4(be, b, tx_type);
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4, b->eob);
+ } else if (!(i & 1) && get_tx_type_4x4(xd, b + 1) == DCT_DCT) {
+ x->vp9_short_fdct8x4(be->src_diff, be->coeff, 32);
+ x->quantize_b_4x4_pair(be, be + 1, b, b + 1);
+ vp9_inverse_transform_b_4x4(xd, ib + iblock[i], 32);
+ vp9_inverse_transform_b_4x4(xd, ib + iblock[i] + 1, 32);
+ i++;
} else {
x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
x->quantize_b_4x4(be, b);