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
9fe88870
Commit
9fe88870
authored
Nov 24, 2013
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Nov 24, 2013
Browse files
Merge "Cleaning up vp9_append_sub8x8_mvs_for_idx."
parents
78d3adbb
52fa10a9
Changes
1
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_findnearmv.c
View file @
9fe88870
...
...
@@ -36,50 +36,44 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd, int allow_hp,
void
vp9_append_sub8x8_mvs_for_idx
(
VP9_COMMON
*
cm
,
MACROBLOCKD
*
xd
,
const
TileInfo
*
const
tile
,
int_mv
*
dst_nearest
,
int_mv
*
dst_near
,
int_mv
*
dst_nearest
,
int_mv
*
dst_near
,
int
block_idx
,
int
ref_idx
,
int
mi_row
,
int
mi_col
)
{
int_mv
dst_list
[
MAX_MV_REF_CANDIDATES
];
int_mv
mv_list
[
MAX_MV_REF_CANDIDATES
];
MODE_INFO
*
const
mi
=
xd
->
mi_8x8
[
0
];
b_mode_info
*
bmi
=
mi
->
bmi
;
int
n
;
assert
(
ref_idx
==
0
||
ref_idx
==
1
);
assert
(
MAX_MV_REF_CANDIDATES
==
2
);
// makes code here slightly easier
assert
(
MAX_MV_REF_CANDIDATES
==
2
);
vp9_find_mv_refs_idx
(
cm
,
xd
,
tile
,
mi
,
xd
->
last_mi
,
mi
->
mbmi
.
ref_frame
[
ref_idx
],
mv_list
,
block_idx
,
mi_row
,
mi_col
);
dst_
list
[
1
].
as_int
=
0
;
dst_
near
->
as_int
=
0
;
if
(
block_idx
==
0
)
{
vpx_memcpy
(
dst_list
,
mv_list
,
MAX_MV_REF_CANDIDATES
*
sizeof
(
int_mv
));
dst_nearest
->
as_int
=
mv_list
[
0
].
as_int
;
dst_near
->
as_int
=
mv_list
[
1
].
as_int
;
}
else
if
(
block_idx
==
1
||
block_idx
==
2
)
{
int
dst
=
0
,
n
;
b_mode_info
*
bmi
=
mi
->
bmi
;
dst_list
[
dst
++
].
as_int
=
bmi
[
0
].
as_mv
[
ref_idx
].
as_int
;
for
(
n
=
0
;
dst
<
MAX_MV_REF_CANDIDATES
&&
n
<
MAX_MV_REF_CANDIDATES
;
n
++
)
if
(
mv_list
[
n
].
as_int
!=
dst_list
[
0
].
as_int
)
dst_list
[
dst
++
].
as_int
=
mv_list
[
n
].
as_int
;
dst_nearest
->
as_int
=
bmi
[
0
].
as_mv
[
ref_idx
].
as_int
;
for
(
n
=
0
;
n
<
MAX_MV_REF_CANDIDATES
;
++
n
)
if
(
dst_nearest
->
as_int
!=
mv_list
[
n
].
as_int
)
{
dst_near
->
as_int
=
mv_list
[
n
].
as_int
;
break
;
}
}
else
{
int
dst
=
0
,
n
;
b_mode_info
*
bmi
=
mi
->
bmi
;
int_mv
candidates
[
2
+
MAX_MV_REF_CANDIDATES
]
=
{
bmi
[
1
].
as_mv
[
ref_idx
],
bmi
[
0
].
as_mv
[
ref_idx
],
mv_list
[
0
],
mv_list
[
1
]
};
assert
(
block_idx
==
3
);
dst_list
[
dst
++
].
as_int
=
bmi
[
2
].
as_mv
[
ref_idx
].
as_int
;
if
(
dst_list
[
0
].
as_int
!=
bmi
[
1
].
as_mv
[
ref_idx
].
as_int
)
dst_list
[
dst
++
].
as_int
=
bmi
[
1
].
as_mv
[
ref_idx
].
as_int
;
if
(
dst
<
MAX_MV_REF_CANDIDATES
&&
dst_list
[
0
].
as_int
!=
bmi
[
0
].
as_mv
[
ref_idx
].
as_int
)
dst_list
[
dst
++
].
as_int
=
bmi
[
0
].
as_mv
[
ref_idx
].
as_int
;
for
(
n
=
0
;
dst
<
MAX_MV_REF_CANDIDATES
&&
n
<
MAX_MV_REF_CANDIDATES
;
n
++
)
if
(
mv_list
[
n
].
as_int
!=
dst_list
[
0
].
as_int
)
dst_list
[
dst
++
].
as_int
=
mv_list
[
n
].
as_int
;
dst_nearest
->
as_int
=
bmi
[
2
].
as_mv
[
ref_idx
].
as_int
;
for
(
n
=
0
;
n
<
2
+
MAX_MV_REF_CANDIDATES
;
++
n
)
{
if
(
dst_nearest
->
as_int
!=
candidates
[
n
].
as_int
)
{
dst_near
->
as_int
=
candidates
[
n
].
as_int
;
break
;
}
}
}
dst_nearest
->
as_int
=
dst_list
[
0
].
as_int
;
dst_near
->
as_int
=
dst_list
[
1
].
as_int
;
}
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