Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Guillaume Martres
aom-rav1e
Commits
8b4e9c59
Commit
8b4e9c59
authored
Feb 06, 2013
by
Paul Wilkins
Committed by
Gerrit Code Review
Feb 06, 2013
Browse files
Merge "Change definition of NearestMV." into experimental
parents
278df745
81043e8d
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_findnearmv.c
View file @
8b4e9c59
...
...
@@ -279,21 +279,16 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
clamp_mv2
(
&
sorted_mvs
[
i
],
xd
);
}
// Provided that there are non zero vectors available there will not
// be more than one 0,0 entry in the sorted list.
// The best ref mv is always set to the first entry (which gave the best
// results. The nearest is set to the first non zero vector if available and
// near to the second non zero vector if available.
// We do not use 0,0 as a nearest or near as 0,0 has its own mode.
if
(
sorted_mvs
[
0
].
as_int
)
{
nearest
->
as_int
=
sorted_mvs
[
0
].
as_int
;
if
(
sorted_mvs
[
1
].
as_int
)
near
->
as_int
=
sorted_mvs
[
1
].
as_int
;
else
near
->
as_int
=
sorted_mvs
[
2
].
as_int
;
// Nearest may be a 0,0 or non zero vector and now matches the chosen
// "best reference". This has advantages when it is used as part of a
// compound predictor as it means a non zero vector can be paired using
// this mode with a 0 vector. The Near vector is still forced to be a
// non zero candidate if one is avaialble.
nearest
->
as_int
=
sorted_mvs
[
0
].
as_int
;
if
(
sorted_mvs
[
1
].
as_int
)
{
near
->
as_int
=
sorted_mvs
[
1
].
as_int
;
}
else
{
nearest
->
as_int
=
sorted_mvs
[
1
].
as_int
;
near
->
as_int
=
sorted_mvs
[
2
].
as_int
;
near
->
as_int
=
sorted_mvs
[
2
].
as_int
;
}
// Copy back the re-ordered mv list
...
...
vp9/encoder/vp9_rdopt.c
View file @
8b4e9c59
...
...
@@ -3304,13 +3304,8 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
96
,
xd
->
allow_high_precision_mv
);
}
break
;
case
NEARESTMV
:
case
NEARMV
:
// Do not bother proceeding if the vector (from newmv, nearest or
// near) is 0,0 as this should then be coded using the zeromv mode.
for
(
i
=
0
;
i
<
num_refs
;
++
i
)
if
(
frame_mv
[
this_mode
][
refs
[
i
]].
as_int
==
0
)
return
INT64_MAX
;
case
NEARESTMV
:
case
ZEROMV
:
default:
break
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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