diff options
author | Scott LaVarnway <slavarnway@google.com> | 2011-10-18 12:06:50 -0400 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2011-10-18 12:06:50 -0400 |
commit | ed9c66f5844cd6fd28c7f92e84a769170a56462e (patch) | |
tree | 10f716283111c3765038ed596eb1dcfd6b695141 /vp8/common/idct.h | |
parent | 6505adf271ff9ad79d024f63ebbdc2819e6ef259 (diff) | |
download | libvpx-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.h | 14 |
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; |