Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
ae537c15
Commit
ae537c15
authored
Jan 08, 2015
by
Jingning Han
Committed by
Gerrit Code Review
Jan 08, 2015
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Refactor mc reference block fetch in denoiser"
parents
4d683862
a0be730e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
20 deletions
+22
-20
vp9/encoder/vp9_denoiser.c
vp9/encoder/vp9_denoiser.c
+22
-20
No files found.
vp9/encoder/vp9_denoiser.c
View file @
ae537c15
...
...
@@ -190,7 +190,6 @@ static uint8_t *block_start(uint8_t *framebuf, int stride,
return
framebuf
+
(
stride
*
mi_row
*
8
)
+
(
mi_col
*
8
);
}
static
VP9_DENOISER_DECISION
perform_motion_compensation
(
VP9_DENOISER
*
denoiser
,
MACROBLOCK
*
mb
,
BLOCK_SIZE
bs
,
...
...
@@ -205,28 +204,18 @@ static VP9_DENOISER_DECISION perform_motion_compensation(VP9_DENOISER *denoiser,
MV_REFERENCE_FRAME
frame
;
MACROBLOCKD
*
filter_mbd
=
&
mb
->
e_mbd
;
MB_MODE_INFO
*
mbmi
=
&
filter_mbd
->
mi
[
0
].
src_mi
->
mbmi
;
MB_MODE_INFO
saved_mbmi
;
int
i
,
j
;
struct
buf_2d
saved_dst
[
MAX_MB_PLANE
];
struct
buf_2d
saved_pre
[
MAX_MB_PLANE
][
2
];
// 2 pre buffers
// We will restore these after motion compensation.
saved_mbmi
=
*
mbmi
;
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
for
(
j
=
0
;
j
<
2
;
++
j
)
{
saved_pre
[
i
][
j
]
=
filter_mbd
->
plane
[
i
].
pre
[
j
];
}
saved_dst
[
i
]
=
filter_mbd
->
plane
[
i
].
dst
;
}
mv_col
=
ctx
->
best_sse_mv
.
as_mv
.
col
;
mv_row
=
ctx
->
best_sse_mv
.
as_mv
.
row
;
*
motion_magnitude
=
mv_row
*
mv_row
+
mv_col
*
mv_col
;
frame
=
ctx
->
best_reference_frame
;
saved_mbmi
=
*
mbmi
;
// If the best reference frame uses inter-prediction and there is enough of a
// difference in sum-squared-error, use it.
if
(
frame
!=
INTRA_FRAME
&&
...
...
@@ -247,6 +236,26 @@ static VP9_DENOISER_DECISION perform_motion_compensation(VP9_DENOISER *denoiser,
ctx
->
newmv_sse
=
ctx
->
zeromv_sse
;
}
if
(
ctx
->
newmv_sse
>
sse_thresh
(
bs
,
increase_denoising
))
{
// Restore everything to its original state
*
mbmi
=
saved_mbmi
;
return
COPY_BLOCK
;
}
if
(
mv_row
*
mv_row
+
mv_col
*
mv_col
>
8
*
noise_motion_thresh
(
bs
,
increase_denoising
))
{
// Restore everything to its original state
*
mbmi
=
saved_mbmi
;
return
COPY_BLOCK
;
}
// We will restore these after motion compensation.
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
for
(
j
=
0
;
j
<
2
;
++
j
)
{
saved_pre
[
i
][
j
]
=
filter_mbd
->
plane
[
i
].
pre
[
j
];
}
saved_dst
[
i
]
=
filter_mbd
->
plane
[
i
].
dst
;
}
// Set the pointers in the MACROBLOCKD to point to the buffers in the denoiser
// struct.
for
(
j
=
0
;
j
<
2
;
++
j
)
{
...
...
@@ -299,13 +308,6 @@ static VP9_DENOISER_DECISION perform_motion_compensation(VP9_DENOISER *denoiser,
mv_row
=
ctx
->
best_sse_mv
.
as_mv
.
row
;
mv_col
=
ctx
->
best_sse_mv
.
as_mv
.
col
;
if
(
ctx
->
newmv_sse
>
sse_thresh
(
bs
,
increase_denoising
))
{
return
COPY_BLOCK
;
}
if
(
mv_row
*
mv_row
+
mv_col
*
mv_col
>
8
*
noise_motion_thresh
(
bs
,
increase_denoising
))
{
return
COPY_BLOCK
;
}
return
FILTER_BLOCK
;
}
...
...
Write
Preview
Markdown
is supported
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