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
80433bed
Commit
80433bed
authored
Dec 11, 2016
by
Angie Chiang
Browse files
Clean up redundant code in convolve.c
Change-Id: Id3936ffd8146c6806fbe93a5bebc23bf5cd8b5f5
parent
e0a75f8f
Changes
1
Hide whitespace changes
Inline
Side-by-side
av1/common/convolve.c
View file @
80433bed
...
...
@@ -213,13 +213,8 @@ void av1_convolve(const uint8_t *src, int src_stride, uint8_t *dst,
if
(
filter_params_y
.
taps
<
filter_params_x
.
taps
)
{
int
intermediate_width
;
int
temp_stride
=
max_intermediate_size
;
#if CONFIG_DUAL_FILTER
filter_params
=
filter_params_y
;
filter_size
=
filter_params_x
.
taps
;
#else
filter_params
=
av1_get_interp_filter_params
(
interp_filter
);
filter_size
=
filter_params
.
taps
;
#endif
intermediate_width
=
(((
w
-
1
)
*
x_step_q4
+
subpel_x_q4
)
>>
SUBPEL_BITS
)
+
filter_size
;
assert
(
intermediate_width
<=
max_intermediate_size
);
...
...
@@ -230,18 +225,14 @@ void av1_convolve(const uint8_t *src, int src_stride, uint8_t *dst,
temp_stride
,
intermediate_width
,
h
,
filter_params
,
subpel_y_q4
,
y_step_q4
,
0
);
#if CONFIG_DUAL_FILTER
filter_params
=
filter_params_x
;
#else
filter_params
=
av1_get_interp_filter_params
(
interp_filter
);
#endif
assert
(
filter_params
.
taps
<=
MAX_FILTER_TAP
);
av1_convolve_horiz_facade
(
temp
+
(
filter_size
/
2
-
1
),
temp_stride
,
dst
,
dst_stride
,
w
,
h
,
filter_params
,
subpel_x_q4
,
x_step_q4
,
ref_idx
);
}
else
#endif
#endif
// CONFIG_DUAL_FILTER
{
int
intermediate_height
;
int
temp_stride
=
MAX_SB_SIZE
;
...
...
@@ -266,8 +257,6 @@ void av1_convolve(const uint8_t *src, int src_stride, uint8_t *dst,
#if CONFIG_DUAL_FILTER
filter_params
=
filter_params_y
;
#else
filter_params
=
av1_get_interp_filter_params
(
interp_filter
);
#endif
assert
(
filter_params
.
taps
<=
MAX_FILTER_TAP
);
...
...
@@ -462,44 +451,50 @@ void av1_highbd_convolve(const uint8_t *src8, int src_stride, uint8_t *dst8,
filter_params
,
subpel_y_q4
,
y_step_q4
,
ref_idx
,
bd
);
}
else
{
// temp's size is set to (maximum possible intermediate_height) *
// MAX_BLOCK_WIDTH
uint16_t
temp
[((((
MAX_BLOCK_HEIGHT
-
1
)
*
MAX_STEP
+
15
)
>>
SUBPEL_BITS
)
+
MAX_FILTER_TAP
)
*
MAX_BLOCK_WIDTH
];
uint8_t
*
temp8
=
CONVERT_TO_BYTEPTR
(
temp
);
int
temp_stride
=
MAX_BLOCK_WIDTH
;
#if CONFIG_DUAL_FILTER
if
(
filter_params_y
.
taps
<
filter_params_x
.
taps
)
{
}
else
#endif // CONFIG_DUAL_FILTER
{
// temp's size is set to (maximum possible intermediate_height) *
// MAX_BLOCK_WIDTH
uint16_t
temp
[((((
MAX_BLOCK_HEIGHT
-
1
)
*
MAX_STEP
+
15
)
>>
SUBPEL_BITS
)
+
MAX_FILTER_TAP
)
*
MAX_BLOCK_WIDTH
];
uint8_t
*
temp8
=
CONVERT_TO_BYTEPTR
(
temp
);
int
temp_stride
=
MAX_BLOCK_WIDTH
;
#if CONFIG_DUAL_FILTER
InterpFilterParams
filter_params_x
=
av1_get_interp_filter_params
(
interp_filter
[
1
+
2
*
ref_idx
]);
InterpFilterParams
filter_params_y
=
av1_get_interp_filter_params
(
interp_filter
[
0
+
2
*
ref_idx
]);
InterpFilterParams
filter_params
=
filter_params_x
;
int
filter_size
=
filter_params_y
.
taps
;
InterpFilterParams
filter_params_x
=
av1_get_interp_filter_params
(
interp_filter
[
1
+
2
*
ref_idx
]);
InterpFilterParams
filter_params_y
=
av1_get_interp_filter_params
(
interp_filter
[
0
+
2
*
ref_idx
]);
InterpFilterParams
filter_params
=
filter_params_x
;
int
filter_size
=
filter_params_y
.
taps
;
#else
InterpFilterParams
filter_params
=
av1_get_interp_filter_params
(
interp_filter
);
int
filter_size
=
filter_params
.
taps
;
InterpFilterParams
filter_params
=
av1_get_interp_filter_params
(
interp_filter
);
int
filter_size
=
filter_params
.
taps
;
#endif
int
intermediate_height
=
(((
h
-
1
)
*
y_step_q4
+
subpel_y_q4
)
>>
SUBPEL_BITS
)
+
filter_size
;
int
intermediate_height
=
(((
h
-
1
)
*
y_step_q4
+
subpel_y_q4
)
>>
SUBPEL_BITS
)
+
filter_size
;
av1_highbd_convolve_horiz_facade
(
src8
-
src_stride
*
(
filter_size
/
2
-
1
),
src_stride
,
temp8
,
temp
_stride
,
w
,
intermediate_height
,
filter_params
,
subpel_x_q4
,
x_step_q4
,
0
,
bd
);
av1_highbd_convolve_horiz_facade
(
src8
-
src_stride
*
(
filter_size
/
2
-
1
),
src
_stride
,
temp8
,
temp_stride
,
w
,
intermediate_height
,
filter_params
,
subpel_x_q4
,
x_step_q4
,
0
,
bd
);
#if CONFIG_DUAL_FILTER
filter_params
=
filter_params_y
;
filter_params
=
filter_params_y
;
#endif
filter_size
=
filter_params
.
taps
;
assert
(
filter_params
.
taps
<=
MAX_FILTER_TAP
);
filter_size
=
filter_params
.
taps
;
assert
(
filter_params
.
taps
<=
MAX_FILTER_TAP
);
av1_highbd_convolve_vert_facade
(
temp8
+
temp_stride
*
(
filter_size
/
2
-
1
),
temp_stride
,
dst8
,
dst_stride
,
w
,
h
,
filter_params
,
subpel_y_q4
,
y_step_q4
,
ref_idx
,
bd
);
av1_highbd_convolve_vert_facade
(
temp8
+
temp_stride
*
(
filter_size
/
2
-
1
),
temp_stride
,
dst8
,
dst_stride
,
w
,
h
,
filter_params
,
subpel_y_q4
,
y_step_q4
,
ref_idx
,
bd
);
}
}
}
#endif // CONFIG_AOM_HIGHBITDEPTH
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