summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2013-04-15 10:00:34 -0700
committerRonald S. Bultje <rbultje@google.com>2013-04-15 13:39:07 -0700
commitaaf33d7df5a061c3175338895484c9b5d6e5f6b5 (patch)
tree7de8819cc8d7677b892a8b052e8e62dcaa297f36 /vp9/encoder/vp9_rdopt.c
parent15eac18c4eb037921a8b7e1f4f600a6edc4c722c (diff)
downloadlibvpx-aaf33d7df5a061c3175338895484c9b5d6e5f6b5.tar
libvpx-aaf33d7df5a061c3175338895484c9b5d6e5f6b5.tar.gz
libvpx-aaf33d7df5a061c3175338895484c9b5d6e5f6b5.tar.bz2
libvpx-aaf33d7df5a061c3175338895484c9b5d6e5f6b5.zip
Add rectangular block size variance/sad functions.
With this, the RD loop properly supports rectangular blocks. Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r--vp9/encoder/vp9_rdopt.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 4d1cf9733..9d1cada00 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2813,7 +2813,15 @@ static void model_rd_from_var_lapndz(int var, int n, int qstep,
static enum BlockSize y_to_uv_block_size(enum BlockSize bs) {
switch (bs) {
case BLOCK_64X64: return BLOCK_32X32;
+#if CONFIG_SBSEGMENT
+ case BLOCK_64X32: return BLOCK_32X16;
+ case BLOCK_32X64: return BLOCK_16X32;
+#endif
case BLOCK_32X32: return BLOCK_16X16;
+#if CONFIG_SBSEGMENT
+ case BLOCK_32X16: return BLOCK_16X8;
+ case BLOCK_16X32: return BLOCK_8X16;
+#endif
case BLOCK_16X16: return BLOCK_8X8;
default:
assert(0);
@@ -2824,7 +2832,15 @@ static enum BlockSize y_to_uv_block_size(enum BlockSize bs) {
static enum BlockSize y_bsizet_to_block_size(BLOCK_SIZE_TYPE bs) {
switch (bs) {
case BLOCK_SIZE_SB64X64: return BLOCK_64X64;
+#if CONFIG_SBSEGMENT
+ case BLOCK_SIZE_SB64X32: return BLOCK_64X32;
+ case BLOCK_SIZE_SB32X64: return BLOCK_32X64;
+#endif
case BLOCK_SIZE_SB32X32: return BLOCK_32X32;
+#if CONFIG_SBSEGMENT
+ case BLOCK_SIZE_SB32X16: return BLOCK_32X16;
+ case BLOCK_SIZE_SB16X32: return BLOCK_16X32;
+#endif
case BLOCK_SIZE_MB16X16: return BLOCK_16X16;
default:
assert(0);