summaryrefslogtreecommitdiff
path: root/vp8/common/idct.h
diff options
context:
space:
mode:
authorScott LaVarnway <slavarnway@google.com>2011-10-18 12:06:50 -0400
committerScott LaVarnway <slavarnway@google.com>2011-10-18 12:06:50 -0400
commited9c66f5844cd6fd28c7f92e84a769170a56462e (patch)
tree10f716283111c3765038ed596eb1dcfd6b695141 /vp8/common/idct.h
parent6505adf271ff9ad79d024f63ebbdc2819e6ef259 (diff)
downloadlibvpx-ed9c66f5844cd6fd28c7f92e84a769170a56462e.tar
libvpx-ed9c66f5844cd6fd28c7f92e84a769170a56462e.tar.gz
libvpx-ed9c66f5844cd6fd28c7f92e84a769170a56462e.tar.bz2
libvpx-ed9c66f5844cd6fd28c7f92e84a769170a56462e.zip
Remove usage of predict buffer for decode
Instead of using the predict buffer, the decoder now writes the predictor into the recon buffer. For blocks with eob=0, unnecessary idcts can be eliminated. This gave a performance boost of ~1.8% for the HD clips used. Tero: Added needed changes to ARM side and scheduled some assembly code to prevent interlocks. Patch Set 6: Merged (I1bcdca7a95aacc3a181b9faa6b10e3a71ee24df3) into this commit because of similarities in the idct functions. Patch Set 7: EC bug fix. Change-Id: Ie31d90b5d3522e1108163f2ac491e455e3f955e6
Diffstat (limited to 'vp8/common/idct.h')
-rw-r--r--vp8/common/idct.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/vp8/common/idct.h b/vp8/common/idct.h
index f5fd94dfd..411a1b472 100644
--- a/vp8/common/idct.h
+++ b/vp8/common/idct.h
@@ -16,12 +16,14 @@
void sym(short *input, short *output)
#define prototype_idct(sym) \
- void sym(short *input, short *output, int pitch)
+ void sym(short *input, unsigned char *pred, int pitch, unsigned char *dst, \
+ int dst_stride)
#define prototype_idct_scalar_add(sym) \
void sym(short input, \
- unsigned char *pred, unsigned char *output, \
- int pitch, int stride)
+ unsigned char *pred, int pred_stride, \
+ unsigned char *dst, \
+ int dst_stride)
#if ARCH_X86 || ARCH_X86_64
#include "x86/idct_x86.h"
@@ -31,11 +33,6 @@
#include "arm/idct_arm.h"
#endif
-#ifndef vp8_idct_idct1
-#define vp8_idct_idct1 vp8_short_idct4x4llm_1_c
-#endif
-extern prototype_idct(vp8_idct_idct1);
-
#ifndef vp8_idct_idct16
#define vp8_idct_idct16 vp8_short_idct4x4llm_c
#endif
@@ -63,7 +60,6 @@ typedef prototype_second_order((*vp8_second_order_fn_t));
typedef struct
{
- vp8_idct_fn_t idct1;
vp8_idct_fn_t idct16;
vp8_idct_scalar_add_fn_t idct1_scalar_add;