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
Xiph.Org
aom-rav1e
Commits
cce7020f
Commit
cce7020f
authored
Mar 13, 2015
by
Jingning Han
Browse files
Use sdx4df to do 1-step refinement
Change-Id: Ie0c3ef3ae3aedf049b1a296de607730b79c12672
parent
ba29125f
Changes
1
Show whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_mcomp.c
View file @
cce7020f
...
...
@@ -1803,7 +1803,7 @@ unsigned int vp9_int_pro_motion_estimation(const VP9_COMP *cpi, MACROBLOCK *x,
const
int
ref_stride
=
xd
->
plane
[
0
].
pre
[
0
].
stride
;
uint8_t
const
*
ref_buf
,
*
src_buf
;
MV
*
tmp_mv
=
&
xd
->
mi
[
0
].
src_mi
->
mbmi
.
mv
[
0
].
as_mv
;
int
best_sad
,
tmp_sad
,
this_sad
[
5
];
unsigned
int
best_sad
,
tmp_sad
,
this_sad
[
4
];
MV
this_mv
;
#if CONFIG_VP9_HIGHBITDEPTH
...
...
@@ -1842,16 +1842,23 @@ unsigned int vp9_int_pro_motion_estimation(const VP9_COMP *cpi, MACROBLOCK *x,
tmp_mv
->
col
=
vector_match
(
hbuf
,
src_hbuf
,
b_width_log2_lookup
[
bsize
]);
tmp_mv
->
row
=
vector_match
(
vbuf
,
src_vbuf
,
b_height_log2_lookup
[
bsize
]);
best_sad
=
INT_MAX
;
this_mv
=
*
tmp_mv
;
src_buf
=
x
->
plane
[
0
].
src
.
buf
;
for
(
idx
=
0
;
idx
<
5
;
++
idx
)
{
ref_buf
=
xd
->
plane
[
0
].
pre
[
0
].
buf
+
(
search_pos
[
idx
].
row
+
this_mv
.
row
)
*
ref_stride
+
(
search_pos
[
idx
].
col
+
this_mv
.
col
);
ref_buf
=
xd
->
plane
[
0
].
pre
[
0
].
buf
+
this_mv
.
row
*
ref_stride
+
this_mv
.
col
;
best_sad
=
cpi
->
fn_ptr
[
bsize
].
sdf
(
src_buf
,
src_stride
,
ref_buf
,
ref_stride
);
{
const
uint8_t
*
const
pos
[
4
]
=
{
ref_buf
-
ref_stride
,
ref_buf
-
1
,
ref_buf
+
1
,
ref_buf
+
ref_stride
,
};
this_sad
[
idx
]
=
cpi
->
fn_ptr
[
bsize
].
sdf
(
src_buf
,
src_stride
,
ref_buf
,
ref_stride
);
cpi
->
fn_ptr
[
bsize
].
sdx4df
(
src_buf
,
src_stride
,
pos
,
ref_stride
,
this_sad
);
}
for
(
idx
=
0
;
idx
<
4
;
++
idx
)
{
if
(
this_sad
[
idx
]
<
best_sad
)
{
best_sad
=
this_sad
[
idx
];
tmp_mv
->
row
=
search_pos
[
idx
].
row
+
this_mv
.
row
;
...
...
@@ -1859,12 +1866,12 @@ unsigned int vp9_int_pro_motion_estimation(const VP9_COMP *cpi, MACROBLOCK *x,
}
}
if
(
this_sad
[
0
]
<
this_sad
[
4
])
if
(
this_sad
[
0
]
<
this_sad
[
3
])
this_mv
.
row
-=
1
;
else
this_mv
.
row
+=
1
;
if
(
this_sad
[
1
]
<
this_sad
[
3
])
if
(
this_sad
[
1
]
<
this_sad
[
2
])
this_mv
.
col
-=
1
;
else
this_mv
.
col
+=
1
;
...
...
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