diff options
author | Deb Mukherjee <debargha@google.com> | 2013-01-24 15:22:57 -0800 |
---|---|---|
committer | Deb Mukherjee <debargha@google.com> | 2013-01-29 00:21:29 -0800 |
commit | 3b04d467ac8eb143bceb388d242a199423e006fd (patch) | |
tree | 28310aa53bccd271b1b641aa73812f8317808163 | |
parent | 5f2429259fcc16e847b4f87330e757931beb970b (diff) | |
download | libvpx-3b04d467ac8eb143bceb388d242a199423e006fd.tar libvpx-3b04d467ac8eb143bceb388d242a199423e006fd.tar.gz libvpx-3b04d467ac8eb143bceb388d242a199423e006fd.tar.bz2 libvpx-3b04d467ac8eb143bceb388d242a199423e006fd.zip |
Further improvement on compound inter-intra expt
Adds a special combination mode specific to intra prediciton
mode D45.
Current results with the compound inter/intra experiment:
derf: 0.2%
yt: 0.55%
std-hd: 0.75%
hd: 0.74%
Change-Id: I8976bdf3b9b0b66ab8c5c628bbc62c14fc72ca86
-rw-r--r-- | vp9/common/vp9_reconintra.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/vp9/common/vp9_reconintra.c b/vp9/common/vp9_reconintra.c index 2828d0373..9ee89d5cf 100644 --- a/vp9/common/vp9_reconintra.c +++ b/vp9/common/vp9_reconintra.c @@ -393,6 +393,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode, 70, 70, 69, 69, 69, 69, 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, }; + int size_scale = (size >= 64 ? 1: size == 32 ? 2 : size == 16 ? 4 : @@ -469,8 +470,21 @@ static void combine_interintra(MB_PREDICTION_MODE mode, break; case D45_PRED: - case DC_PRED: + for (i = 0; i < size; ++i) { + for (j = 0; j < size; ++j) { + int k = i * interstride + j; + int scale = (weights1d[i * size_scale] + + weights1d[j * size_scale]) >> 1; + interpred[k] = + ((scale_max - scale) * interpred[k] + + scale * intrapred[i * intrastride + j] + scale_round) + >> scale_bits; + } + } + break; + case TM_PRED: + case DC_PRED: default: // simple average for (i = 0; i < size; ++i) { |