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
03de1b28
Commit
03de1b28
authored
Mar 30, 2017
by
Jean-Marc Valin
Committed by
Steinar Midtskogen
Apr 01, 2017
Browse files
Implement tile boundaries
Change-Id: I7fad7934b3b43b17e762a8610cb9bf3bbb837ebd
parent
a4ecb1bf
Changes
1
Hide whitespace changes
Inline
Side-by-side
av1/common/cdef.c
View file @
03de1b28
...
...
@@ -171,12 +171,6 @@ void av1_cdef_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm,
int
uv_level
,
uv_clpf_strength
;
int
nhb
,
nvb
;
int
cstart
=
0
;
#if 0 // TODO(stemidts/jmvalin): Handle tile borders correctly
BOUNDARY_TYPE boundary_type =
cm->mi_grid_visible[MAX_MIB_SIZE * sbr * cm->mi_stride +
MAX_MIB_SIZE * sbc]
->mbmi.boundary_info;
#endif
if
(
cm
->
mi_grid_visible
[
MAX_MIB_SIZE
*
sbr
*
cm
->
mi_stride
+
MAX_MIB_SIZE
*
sbc
]
==
NULL
)
{
dering_left
=
0
;
...
...
@@ -185,6 +179,19 @@ void av1_cdef_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm,
if
(
!
dering_left
)
cstart
=
-
OD_FILT_HBORDER
;
nhb
=
AOMMIN
(
MAX_MIB_SIZE
,
cm
->
mi_cols
-
MAX_MIB_SIZE
*
sbc
);
nvb
=
AOMMIN
(
MAX_MIB_SIZE
,
cm
->
mi_rows
-
MAX_MIB_SIZE
*
sbr
);
int
tile_top
,
tile_left
,
tile_bottom
,
tile_right
;
BOUNDARY_TYPE
boundary_tl
=
cm
->
mi_grid_visible
[
MAX_MIB_SIZE
*
sbr
*
cm
->
mi_stride
+
MAX_MIB_SIZE
*
sbc
]
->
mbmi
.
boundary_info
;
BOUNDARY_TYPE
boundary_br
=
cm
->
mi_grid_visible
[(
MAX_MIB_SIZE
*
sbr
+
nvb
-
1
)
*
cm
->
mi_stride
+
MAX_MIB_SIZE
*
sbc
+
nhb
-
1
]
->
mbmi
.
boundary_info
;
tile_top
=
boundary_tl
&
TILE_ABOVE_BOUNDARY
;
tile_left
=
boundary_tl
&
TILE_LEFT_BOUNDARY
;
tile_bottom
=
boundary_br
&
TILE_BOTTOM_BOUNDARY
;
tile_right
=
boundary_br
&
TILE_RIGHT_BOUNDARY
;
level
=
cm
->
cdef_strengths
[
cm
->
mi_grid_visible
[
MAX_MIB_SIZE
*
sbr
*
cm
->
mi_stride
+
MAX_MIB_SIZE
*
sbc
]
...
...
@@ -364,6 +371,40 @@ void av1_cdef_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm,
(
nhb
<<
mi_wide_l2
[
pli
]));
if
(
level
==
0
&&
clpf_strength
==
0
)
continue
;
if
(
tile_top
)
{
for
(
r
=
0
;
r
<
OD_FILT_VBORDER
;
r
++
)
{
for
(
c
=
0
;
c
<
(
nhb
<<
mi_wide_l2
[
pli
])
+
2
*
OD_FILT_HBORDER
;
c
++
)
{
src
[
r
*
OD_FILT_BSTRIDE
+
c
]
=
OD_DERING_VERY_LARGE
;
}
}
}
if
(
tile_left
)
{
for
(
r
=
0
;
r
<
(
nvb
<<
mi_high_l2
[
pli
])
+
2
*
OD_FILT_VBORDER
;
r
++
)
{
for
(
c
=
0
;
c
<
OD_FILT_HBORDER
;
c
++
)
{
src
[
r
*
OD_FILT_BSTRIDE
+
c
]
=
OD_DERING_VERY_LARGE
;
}
}
}
if
(
tile_bottom
)
{
for
(
r
=
(
nvb
<<
mi_high_l2
[
pli
]);
r
<
(
nvb
<<
mi_high_l2
[
pli
])
+
OD_FILT_VBORDER
;
r
++
)
{
for
(
c
=
0
;
c
<
(
nhb
<<
mi_wide_l2
[
pli
])
+
2
*
OD_FILT_HBORDER
;
c
++
)
{
src
[(
r
+
OD_FILT_VBORDER
)
*
OD_FILT_BSTRIDE
+
c
]
=
OD_DERING_VERY_LARGE
;
}
}
}
if
(
tile_right
)
{
for
(
r
=
0
;
r
<
(
nvb
<<
mi_high_l2
[
pli
])
+
2
*
OD_FILT_VBORDER
;
r
++
)
{
for
(
c
=
(
nhb
<<
mi_wide_l2
[
pli
]);
c
<
(
nhb
<<
mi_wide_l2
[
pli
])
+
OD_FILT_HBORDER
;
++
c
)
{
src
[
r
*
OD_FILT_BSTRIDE
+
c
+
OD_FILT_HBORDER
]
=
OD_DERING_VERY_LARGE
;
}
}
}
#if CONFIG_AOM_HIGHBITDEPTH
if
(
cm
->
use_highbitdepth
)
{
od_dering
(
...
...
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