summaryrefslogtreecommitdiff
path: root/vp8/encoder/encodemb.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2012-08-20 17:04:23 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2012-08-20 17:04:23 -0700
commit4396441b8b6a97aae50694d49971cdc062c469e0 (patch)
treec7e53cb1e8fe71b42bfff31d63554929bde20b63 /vp8/encoder/encodemb.c
parentfc892cc54d6c443f2e29e270c7ad0dc5e0f137a2 (diff)
parent5d4cffb35f4bc23462eedc95a4802c65e32d7d5a (diff)
downloadlibvpx-4396441b8b6a97aae50694d49971cdc062c469e0.tar
libvpx-4396441b8b6a97aae50694d49971cdc062c469e0.tar.gz
libvpx-4396441b8b6a97aae50694d49971cdc062c469e0.tar.bz2
libvpx-4396441b8b6a97aae50694d49971cdc062c469e0.zip
Merge "Superblock coding." into experimental
Diffstat (limited to 'vp8/encoder/encodemb.c')
-rw-r--r--vp8/encoder/encodemb.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/vp8/encoder/encodemb.c b/vp8/encoder/encodemb.c
index 454244457..8c48b0d83 100644
--- a/vp8/encoder/encodemb.c
+++ b/vp8/encoder/encodemb.c
@@ -67,11 +67,10 @@ void vp8_subtract_4b_c(BLOCK *be, BLOCKD *bd, int pitch) {
}
}
-void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, unsigned char *pred, int stride) {
+void vp8_subtract_mbuv_s_c(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride,
+ unsigned char *upred, unsigned char *vpred, int dst_stride) {
short *udiff = diff + 256;
short *vdiff = diff + 320;
- unsigned char *upred = pred + 256;
- unsigned char *vpred = pred + 320;
int r, c;
@@ -81,8 +80,8 @@ void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc,
}
udiff += 8;
- upred += 8;
- usrc += stride;
+ upred += dst_stride;
+ usrc += src_stride;
}
for (r = 0; r < 8; r++) {
@@ -91,12 +90,19 @@ void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc,
}
vdiff += 8;
- vpred += 8;
- vsrc += stride;
+ vpred += dst_stride;
+ vsrc += src_stride;
}
}
-void vp8_subtract_mby_c(short *diff, unsigned char *src, unsigned char *pred, int stride) {
+void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, unsigned char *pred, int stride) {
+ unsigned char *upred = pred + 256;
+ unsigned char *vpred = pred + 320;
+
+ vp8_subtract_mbuv_s_c(diff, usrc, vsrc, stride, upred, vpred, 8);
+}
+
+void vp8_subtract_mby_s_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int dst_stride) {
int r, c;
for (r = 0; r < 16; r++) {
@@ -105,11 +111,16 @@ void vp8_subtract_mby_c(short *diff, unsigned char *src, unsigned char *pred, in
}
diff += 16;
- pred += 16;
- src += stride;
+ pred += dst_stride;
+ src += src_stride;
}
}
+void vp8_subtract_mby_c(short *diff, unsigned char *src, unsigned char *pred, int stride)
+{
+ vp8_subtract_mby_s_c(diff, src, stride, pred, 16);
+}
+
static void vp8_subtract_mb(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
BLOCK *b = &x->block[0];