Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
e467627f
Commit
e467627f
authored
Mar 30, 2016
by
Debargha Mukherjee
Committed by
Gerrit Code Review
Mar 30, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Fix for ext_interp experiment" into nextgenv2
parents
cd1d01b9
068e7994
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
61 deletions
+22
-61
vp10/common/reconinter.c
vp10/common/reconinter.c
+4
-4
vp10/common/reconinter.h
vp10/common/reconinter.h
+18
-57
No files found.
vp10/common/reconinter.c
View file @
e467627f
...
...
@@ -1098,7 +1098,7 @@ void vp10_build_inter_predictors_sb_extend(MACROBLOCKD *xd,
const
int
bh
=
4
*
num_4x4_h
;
if
(
xd
->
mi
[
0
]
->
mbmi
.
sb_type
<
BLOCK_8X8
)
{
int
i
=
0
,
x
,
y
;
int
x
,
y
;
assert
(
bsize
==
BLOCK_8X8
);
for
(
y
=
0
;
y
<
num_4x4_h
;
++
y
)
for
(
x
=
0
;
x
<
num_4x4_w
;
++
x
)
...
...
@@ -1107,7 +1107,7 @@ void vp10_build_inter_predictors_sb_extend(MACROBLOCKD *xd,
#if CONFIG_OBMC
0
,
0
,
#endif // CONFIG_OBMC
i
++
,
bw
,
bh
,
4
*
x
,
4
*
y
,
4
,
4
,
y
*
2
+
x
,
bw
,
bh
,
4
*
x
,
4
*
y
,
4
,
4
,
#if CONFIG_EXT_INTER
wedge_offset_x
>>
(
xd
->
plane
[
plane
].
subsampling_x
),
wedge_offset_y
>>
(
xd
->
plane
[
plane
].
subsampling_y
),
...
...
@@ -2067,12 +2067,12 @@ void vp10_build_inter_predictors_for_planes_single_buf(
const
int
bh
=
4
*
num_4x4_h
;
if
(
xd
->
mi
[
0
]
->
mbmi
.
sb_type
<
BLOCK_8X8
)
{
int
i
=
0
,
x
,
y
;
int
x
,
y
;
assert
(
bsize
==
BLOCK_8X8
);
for
(
y
=
0
;
y
<
num_4x4_h
;
++
y
)
for
(
x
=
0
;
x
<
num_4x4_w
;
++
x
)
build_inter_predictors_single_buf
(
xd
,
plane
,
i
++
,
bw
,
bh
,
y
*
2
+
x
,
bw
,
bh
,
4
*
x
,
4
*
y
,
4
,
4
,
mi_x
,
mi_y
,
ref
,
ext_dst
[
plane
],
...
...
vp10/common/reconinter.h
View file @
e467627f
...
...
@@ -331,7 +331,7 @@ static INLINE int vp10_is_interp_needed(const MACROBLOCKD *const xd) {
MB_MODE_INFO
*
const
mbmi
=
&
mi
->
mbmi
;
const
BLOCK_SIZE
bsize
=
mbmi
->
sb_type
;
const
int
is_compound
=
has_second_ref
(
mbmi
);
int
intpel_mv
;
int
intpel_mv
=
1
;
int
plane
;
#if SUPPORT_NONINTERPOLATING_FILTERS
...
...
@@ -351,65 +351,26 @@ static INLINE int vp10_is_interp_needed(const MACROBLOCKD *const xd) {
if
(
is_compound
&&
vp10_is_scaled
(
&
xd
->
block_refs
[
1
]
->
sf
))
return
1
;
if
(
bsize
==
BLOCK_4X4
)
{
for
(
plane
=
0
;
plane
<
2
;
++
plane
)
{
if
(
bsize
<
BLOCK_8X8
)
{
for
(
plane
=
0
;
plane
<
MAX_MB_PLANE
;
++
plane
)
{
const
PARTITION_TYPE
bp
=
BLOCK_8X8
-
bsize
;
const
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
MV
mv0
=
average_split_mvs
(
pd
,
mi
,
0
,
0
);
MV
mv1
=
average_split_mvs
(
pd
,
mi
,
0
,
1
);
MV
mv2
=
average_split_mvs
(
pd
,
mi
,
0
,
2
);
MV
mv3
=
average_split_mvs
(
pd
,
mi
,
0
,
3
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
)
&&
!
mv_has_subpel
(
&
mv2
)
&&
!
mv_has_subpel
(
&
mv3
);
if
(
is_compound
&&
intpel_mv
)
{
mv0
=
average_split_mvs
(
pd
,
mi
,
1
,
0
);
mv1
=
average_split_mvs
(
pd
,
mi
,
1
,
1
);
mv2
=
average_split_mvs
(
pd
,
mi
,
1
,
2
);
mv3
=
average_split_mvs
(
pd
,
mi
,
1
,
3
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
)
&&
!
mv_has_subpel
(
&
mv2
)
&&
!
mv_has_subpel
(
&
mv3
);
const
int
have_vsplit
=
bp
!=
PARTITION_HORZ
;
const
int
have_hsplit
=
bp
!=
PARTITION_VERT
;
const
int
num_4x4_w
=
2
>>
((
!
have_vsplit
)
|
pd
->
subsampling_x
);
const
int
num_4x4_h
=
2
>>
((
!
have_hsplit
)
|
pd
->
subsampling_y
);
int
ref
;
for
(
ref
=
0
;
ref
<
1
+
is_compound
;
++
ref
)
{
int
x
,
y
;
for
(
y
=
0
;
y
<
num_4x4_h
;
++
y
)
for
(
x
=
0
;
x
<
num_4x4_w
;
++
x
)
{
const
MV
mv
=
average_split_mvs
(
pd
,
mi
,
ref
,
y
*
2
+
x
);
if
(
mv_has_subpel
(
&
mv
))
return
1
;
}
}
if
(
!
intpel_mv
)
break
;
}
}
else
if
(
bsize
==
BLOCK_4X8
)
{
for
(
plane
=
0
;
plane
<
2
;
++
plane
)
{
const
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
MV
mv0
=
average_split_mvs
(
pd
,
mi
,
0
,
0
);
MV
mv1
=
average_split_mvs
(
pd
,
mi
,
0
,
1
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
);
if
(
is_compound
&&
intpel_mv
)
{
mv0
=
average_split_mvs
(
pd
,
mi
,
1
,
0
);
mv1
=
average_split_mvs
(
pd
,
mi
,
1
,
1
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
);
}
if
(
!
intpel_mv
)
break
;
}
}
else
if
(
bsize
==
BLOCK_8X4
)
{
for
(
plane
=
0
;
plane
<
2
;
++
plane
)
{
const
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
MV
mv0
=
average_split_mvs
(
pd
,
mi
,
0
,
0
);
MV
mv1
=
average_split_mvs
(
pd
,
mi
,
0
,
2
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
);
if
(
is_compound
&&
intpel_mv
)
{
mv0
=
average_split_mvs
(
pd
,
mi
,
1
,
0
);
mv1
=
average_split_mvs
(
pd
,
mi
,
1
,
2
);
intpel_mv
=
!
mv_has_subpel
(
&
mv0
)
&&
!
mv_has_subpel
(
&
mv1
);
}
if
(
!
intpel_mv
)
break
;
}
return
0
;
}
else
{
intpel_mv
=
!
mv_has_subpel
(
&
mbmi
->
mv
[
0
].
as_mv
);
if
(
is_compound
&&
intpel_mv
)
{
...
...
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