Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
2aacc66b
Commit
2aacc66b
authored
Feb 23, 2014
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Feb 23, 2014
Browse files
Merge "Cleaning up vp9_mvref_common.{h, c}."
parents
4b3e44f9
d43c5cc5
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_mvref_common.c
View file @
2aacc66b
...
...
@@ -186,13 +186,12 @@ static INLINE int is_inside(const TileInfo *const tile,
// This function searches the neighbourhood of a given MB/SB
// to try and find candidate reference vectors.
void
vp9_find_mv_refs_idx
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
block_idx
,
int
mi_row
,
int
mi_col
)
{
static
void
find_mv_refs_idx
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
block_idx
,
int
mi_row
,
int
mi_col
)
{
const
int
*
ref_sign_bias
=
cm
->
ref_frame_sign_bias
;
int
i
,
refmv_count
=
0
;
const
POSITION
*
const
mv_ref_search
=
mv_ref_blocks
[
mi
->
mbmi
.
sb_type
];
...
...
@@ -291,6 +290,16 @@ void vp9_find_mv_refs_idx(const VP9_COMMON *cm, const MACROBLOCKD *xd,
clamp_mv_ref
(
&
mv_ref_list
[
i
].
as_mv
,
xd
);
}
void
vp9_find_mv_refs
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
mi_row
,
int
mi_col
)
{
find_mv_refs_idx
(
cm
,
xd
,
tile
,
mi
,
prev_mi
,
ref_frame
,
mv_ref_list
,
-
1
,
mi_row
,
mi_col
);
}
static
void
lower_mv_precision
(
MV
*
mv
,
int
allow_hp
)
{
const
int
use_hp
=
allow_hp
&&
vp9_use_mv_hp
(
mv
);
if
(
!
use_hp
)
{
...
...
@@ -325,8 +334,8 @@ void vp9_append_sub8x8_mvs_for_idx(VP9_COMMON *cm, MACROBLOCKD *xd,
assert
(
MAX_MV_REF_CANDIDATES
==
2
);
vp9_
find_mv_refs_idx
(
cm
,
xd
,
tile
,
mi
,
xd
->
last_mi
,
mi
->
mbmi
.
ref_frame
[
ref
],
mv_list
,
block
,
mi_row
,
mi_col
);
find_mv_refs_idx
(
cm
,
xd
,
tile
,
mi
,
xd
->
last_mi
,
mi
->
mbmi
.
ref_frame
[
ref
],
mv_list
,
block
,
mi_row
,
mi_col
);
near
->
as_int
=
0
;
switch
(
block
)
{
...
...
vp9/common/vp9_mvref_common.h
View file @
2aacc66b
...
...
@@ -17,29 +17,24 @@
extern
"C"
{
#endif
#define LEFT_TOP_MARGIN ((VP9_ENC_BORDER_IN_PIXELS - VP9_INTERP_EXTEND) << 3)
#define RIGHT_BOTTOM_MARGIN ((VP9_ENC_BORDER_IN_PIXELS -\
VP9_INTERP_EXTEND) << 3)
void
vp9_find_mv_refs_idx
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
block_idx
,
int
mi_row
,
int
mi_col
);
static
INLINE
void
vp9_find_mv_refs
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
mi_row
,
int
mi_col
)
{
vp9_find_mv_refs_idx
(
cm
,
xd
,
tile
,
mi
,
prev_mi
,
ref_frame
,
mv_ref_list
,
-
1
,
mi_row
,
mi_col
);
// TODO(jingning): this mv clamping function should be block size dependent.
static
INLINE
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
,
xd
->
mb_to_top_edge
-
LEFT_TOP_MARGIN
,
xd
->
mb_to_bottom_edge
+
RIGHT_BOTTOM_MARGIN
);
}
#define LEFT_TOP_MARGIN ((VP9_ENC_BORDER_IN_PIXELS \
- VP9_INTERP_EXTEND) << 3)
#define RIGHT_BOTTOM_MARGIN ((VP9_ENC_BORDER_IN_PIXELS \
- VP9_INTERP_EXTEND) << 3)
void
vp9_find_mv_refs
(
const
VP9_COMMON
*
cm
,
const
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
MODE_INFO
*
mi
,
const
MODE_INFO
*
prev_mi
,
MV_REFERENCE_FRAME
ref_frame
,
int_mv
*
mv_ref_list
,
int
mi_row
,
int
mi_col
);
// check a list of motion vectors by sad score using a number rows of pixels
// above and a number cols of pixels in the left to select the one with best
...
...
@@ -47,14 +42,6 @@ static INLINE void vp9_find_mv_refs(const VP9_COMMON *cm, const MACROBLOCKD *xd,
void
vp9_find_best_ref_mvs
(
MACROBLOCKD
*
xd
,
int
allow_hp
,
int_mv
*
mvlist
,
int_mv
*
nearest
,
int_mv
*
near
);
// TODO(jingning): this mv clamping function should be block size dependent.
static
INLINE
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
,
xd
->
mb_to_top_edge
-
LEFT_TOP_MARGIN
,
xd
->
mb_to_bottom_edge
+
RIGHT_BOTTOM_MARGIN
);
}
void
vp9_append_sub8x8_mvs_for_idx
(
VP9_COMMON
*
cm
,
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
int
block
,
int
ref
,
int
mi_row
,
int
mi_col
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment