summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-08-01 15:06:34 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-08-01 15:06:34 -0700
commit422d38bca1ed6d3211baafb3cd7d8d4a3786931e (patch)
tree6beb19decb6e24ae7934b2bb2f02f4c83f8591ed /vp9
parentddf02e323a7134bf330f6b2dfb5814fb4fc60edf (diff)
downloadlibvpx-422d38bca1ed6d3211baafb3cd7d8d4a3786931e.tar
libvpx-422d38bca1ed6d3211baafb3cd7d8d4a3786931e.tar.gz
libvpx-422d38bca1ed6d3211baafb3cd7d8d4a3786931e.tar.bz2
libvpx-422d38bca1ed6d3211baafb3cd7d8d4a3786931e.zip
Cleanup: reusing clamp_mv function.
Change-Id: I8715f08a3554bdb557c5f935f1dfbd671f18e766
Diffstat (limited to 'vp9')
-rw-r--r--vp9/common/vp9_findnearmv.h6
-rw-r--r--vp9/common/vp9_mv.h8
-rw-r--r--vp9/common/vp9_mvref_common.c8
-rw-r--r--vp9/common/vp9_reconinter.c25
4 files changed, 25 insertions, 22 deletions
diff --git a/vp9/common/vp9_findnearmv.h b/vp9/common/vp9_findnearmv.h
index 543351df3..c1f82cc86 100644
--- a/vp9/common/vp9_findnearmv.h
+++ b/vp9/common/vp9_findnearmv.h
@@ -29,12 +29,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
int_mv *near);
// TODO(jingning): this mv clamping function should be block size dependent.
-static void clamp_mv(MV *mv, int min_col, int max_col,
- int min_row, int max_row) {
- mv->col = clamp(mv->col, min_col, max_col);
- mv->row = clamp(mv->row, min_row, max_row);
-}
-
static void clamp_mv2(MV *mv, const MACROBLOCKD *xd) {
clamp_mv(mv, xd->mb_to_left_edge - LEFT_TOP_MARGIN,
xd->mb_to_right_edge + RIGHT_BOTTOM_MARGIN,
diff --git a/vp9/common/vp9_mv.h b/vp9/common/vp9_mv.h
index a095258be..31a79b984 100644
--- a/vp9/common/vp9_mv.h
+++ b/vp9/common/vp9_mv.h
@@ -13,6 +13,8 @@
#include "vpx/vpx_integer.h"
+#include "vp9/common/vp9_common.h"
+
typedef struct {
int16_t row;
int16_t col;
@@ -28,4 +30,10 @@ typedef struct {
int32_t col;
} MV32;
+static void clamp_mv(MV *mv, int min_col, int max_col,
+ int min_row, int max_row) {
+ mv->col = clamp(mv->col, min_col, max_col);
+ mv->row = clamp(mv->row, min_row, max_row);
+}
+
#endif // VP9_COMMON_VP9_MV_H_
diff --git a/vp9/common/vp9_mvref_common.c b/vp9/common/vp9_mvref_common.c
index 8cf171697..64baac613 100644
--- a/vp9/common/vp9_mvref_common.c
+++ b/vp9/common/vp9_mvref_common.c
@@ -43,10 +43,10 @@ static const int mv_ref_blocks[BLOCK_SIZE_TYPES][MVREF_NEIGHBOURS][2] = {
#define MV_BORDER (16 << 3) // Allow 16 pels in 1/8th pel units
static void clamp_mv_ref(const MACROBLOCKD *xd, int_mv *mv) {
- mv->as_mv.col = clamp(mv->as_mv.col, xd->mb_to_left_edge - MV_BORDER,
- xd->mb_to_right_edge + MV_BORDER);
- mv->as_mv.row = clamp(mv->as_mv.row, xd->mb_to_top_edge - MV_BORDER,
- xd->mb_to_bottom_edge + MV_BORDER);
+ clamp_mv(&mv->as_mv, xd->mb_to_left_edge - MV_BORDER,
+ xd->mb_to_right_edge + MV_BORDER,
+ xd->mb_to_top_edge - MV_BORDER,
+ xd->mb_to_bottom_edge + MV_BORDER);
}
// Gets a candidate reference motion vector from the given mode info
diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c
index 8c493934c..c039a749b 100644
--- a/vp9/common/vp9_reconinter.c
+++ b/vp9/common/vp9_reconinter.c
@@ -239,24 +239,25 @@ MV clamp_mv_to_umv_border_sb(const MV *src_mv,
int bwl, int bhl, int ss_x, int ss_y,
int mb_to_left_edge, int mb_to_top_edge,
int mb_to_right_edge, int mb_to_bottom_edge) {
- /* If the MV points so far into the UMV border that no visible pixels
- * are used for reconstruction, the subpel part of the MV can be
- * discarded and the MV limited to 16 pixels with equivalent results.
- */
+ // If the MV points so far into the UMV border that no visible pixels
+ // are used for reconstruction, the subpel part of the MV can be
+ // discarded and the MV limited to 16 pixels with equivalent results.
const int spel_left = (VP9_INTERP_EXTEND + (4 << bwl)) << 4;
const int spel_right = spel_left - (1 << 4);
const int spel_top = (VP9_INTERP_EXTEND + (4 << bhl)) << 4;
const int spel_bottom = spel_top - (1 << 4);
- MV clamped_mv;
-
+ MV clamped_mv = {
+ src_mv->row << (1 - ss_y),
+ src_mv->col << (1 - ss_x)
+ };
assert(ss_x <= 1);
assert(ss_y <= 1);
- clamped_mv.col = clamp(src_mv->col << (1 - ss_x),
- (mb_to_left_edge << (1 - ss_x)) - spel_left,
- (mb_to_right_edge << (1 - ss_x)) + spel_right);
- clamped_mv.row = clamp(src_mv->row << (1 - ss_y),
- (mb_to_top_edge << (1 - ss_y)) - spel_top,
- (mb_to_bottom_edge << (1 - ss_y)) + spel_bottom);
+
+ clamp_mv(&clamped_mv, (mb_to_left_edge << (1 - ss_x)) - spel_left,
+ (mb_to_right_edge << (1 - ss_x)) + spel_right,
+ (mb_to_top_edge << (1 - ss_y)) - spel_top,
+ (mb_to_bottom_edge << (1 - ss_y)) + spel_bottom);
+
return clamped_mv;
}