Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
libvpx
Commits
4aabfaa5
Commit
4aabfaa5
authored
Aug 03, 2012
by
Deb Mukherjee
Committed by
Gerrit Code Review
Aug 03, 2012
Browse files
Merge "Merging and bug-fix in enhanced_interp experiment" into experimental
parents
2914ab2e
0ebf548c
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
40 additions
and
73 deletions
+40
-73
configure
configure
+0
-2
vp8/common/blockd.h
vp8/common/blockd.h
+0
-2
vp8/common/filter.c
vp8/common/filter.c
+6
-10
vp8/common/generic/systemdependent.c
vp8/common/generic/systemdependent.c
+1
-2
vp8/common/reconinter.c
vp8/common/reconinter.c
+0
-2
vp8/common/subpixel.h
vp8/common/subpixel.h
+0
-4
vp8/common/x86/x86_systemdependent.c
vp8/common/x86/x86_systemdependent.c
+6
-6
vp8/decoder/decodframe.c
vp8/decoder/decodframe.c
+1
-7
vp8/encoder/bitstream.c
vp8/encoder/bitstream.c
+0
-2
vp8/encoder/mcomp.c
vp8/encoder/mcomp.c
+8
-4
vp8/encoder/onyx_if.c
vp8/encoder/onyx_if.c
+13
-25
vp8/encoder/onyx_int.h
vp8/encoder/onyx_int.h
+0
-2
vpx_scale/arm/scalesystemdependent.c
vpx_scale/arm/scalesystemdependent.c
+2
-0
vpx_scale/yv12config.h
vpx_scale/yv12config.h
+3
-5
No files found.
configure
View file @
4aabfaa5
...
...
@@ -215,13 +215,11 @@ HAVE_LIST="
"
EXPERIMENT_LIST
=
"
csm
enhanced_interp
featureupdates
high_precision_mv
sixteenth_subpel_uv
comp_intra_pred
superblocks
newintramodes
pred_filter
lossless
hybridtransform
...
...
vp8/common/blockd.h
View file @
4aabfaa5
...
...
@@ -80,13 +80,11 @@ typedef enum
{
SIXTAP
=
0
,
BILINEAR
=
1
,
#if CONFIG_ENHANCED_INTERP
EIGHTTAP
=
2
,
EIGHTTAP_SHARP
=
3
,
#if CONFIG_SWITCHABLE_INTERP
SWITCHABLE
/* should be the last one */
#endif
#endif
}
INTERPOLATIONFILTERTYPE
;
#if 0//CONFIG_SWITCHABLE_INTERP
...
...
vp8/common/filter.c
View file @
4aabfaa5
...
...
@@ -43,11 +43,10 @@ DECLARE_ALIGNED(16, const short, vp8_bilinear_filters[SUBPEL_SHIFTS][2]) = {
#endif
/* SUBPEL_SHIFTS==16 */
};
#if CONFIG_ENHANCED_INTERP
#define FILTER_ALPHA 0
#define FILTER_ALPHA_SHARP 1
DECLARE_ALIGNED
(
16
,
const
short
,
vp8_sub_pel_filters_8
[
SUBPEL_SHIFTS
][
2
*
INTERP_EXTEND
])
=
{
DECLARE_ALIGNED
(
16
,
const
short
,
vp8_sub_pel_filters_8
[
SUBPEL_SHIFTS
][
8
])
=
{
#if SUBPEL_SHIFTS==16
#if FILTER_ALPHA == 0
/* Lagrangian interpolation filter */
...
...
@@ -116,7 +115,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8[SUBPEL_SHIFTS][2 * INTERP
#endif
/* SUBPEL_SHIFTS==16 */
};
DECLARE_ALIGNED
(
16
,
const
short
,
vp8_sub_pel_filters_8s
[
SUBPEL_SHIFTS
][
2
*
INTERP_EXTEND
])
=
{
DECLARE_ALIGNED
(
16
,
const
short
,
vp8_sub_pel_filters_8s
[
SUBPEL_SHIFTS
][
8
])
=
{
#if SUBPEL_SHIFTS==16
#if FILTER_ALPHA_SHARP == 1
/* dct based filter */
...
...
@@ -137,6 +136,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
{
-
1
,
3
,
-
6
,
17
,
125
,
-
13
,
5
,
-
2
},
{
0
,
1
,
-
3
,
8
,
127
,
-
7
,
3
,
-
1
}
#elif FILTER_ALPHA_SHARP == 75
/* alpha = 0.75 */
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
-
1
,
2
,
-
6
,
126
,
9
,
-
3
,
2
,
-
1
},
{
-
1
,
4
,
-
11
,
123
,
18
,
-
7
,
3
,
-
1
},
...
...
@@ -174,6 +174,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
#endif
/* FILTER_ALPHA_SHARP */
#else
/* SUBPEL_SHIFTS==16 */
#if FILTER_ALPHA_SHARP == 1
/* dct based filter */
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
-
2
,
5
,
-
13
,
125
,
17
,
-
6
,
3
,
-
1
},
{
-
4
,
9
,
-
20
,
115
,
37
,
-
13
,
6
,
-
2
},
...
...
@@ -183,6 +184,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
{
-
2
,
6
,
-
13
,
37
,
115
,
-
20
,
9
,
-
4
},
{
-
1
,
3
,
-
6
,
17
,
125
,
-
13
,
5
,
-
2
}
#elif FILTER_ALPHA_SHARP == 75
/* alpha = 0.75 */
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
-
1
,
4
,
-
11
,
123
,
18
,
-
7
,
3
,
-
1
},
{
-
2
,
7
,
-
19
,
113
,
38
,
-
13
,
6
,
-
2
},
...
...
@@ -205,8 +207,6 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
#endif
/* SUBPEL_SHIFTS==16 */
};
#endif // CONFIG_ENHANCED_INTERP
DECLARE_ALIGNED
(
16
,
const
short
,
vp8_sub_pel_filters_6
[
SUBPEL_SHIFTS
][
6
])
=
{
#if SUBPEL_SHIFTS==16
{
0
,
0
,
128
,
0
,
0
,
0
},
...
...
@@ -590,8 +590,6 @@ void vp8_sixtap_predict_avg16x16_c
16
,
16
,
16
,
16
,
VFilter
);
}
#if CONFIG_ENHANCED_INTERP
#undef Interp_Extend
#define Interp_Extend 4
...
...
@@ -1148,8 +1146,6 @@ void vp8_eighttap_predict_avg16x16_sharp_c
16
,
16
,
16
,
16
,
VFilter
);
}
#endif
/* CONFIG_ENHANCED_INTERP */
/****************************************************************************
*
* ROUTINE : filter_block2d_bil_first_pass
...
...
vp8/common/generic/systemdependent.c
View file @
4aabfaa5
...
...
@@ -78,7 +78,6 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) {
vp8_comp_intra_uv4x4_predict
;
#endif
#if CONFIG_ENHANCED_INTERP
rtcd
->
subpix
.
eighttap16x16
=
vp8_eighttap_predict16x16_c
;
rtcd
->
subpix
.
eighttap8x8
=
vp8_eighttap_predict8x8_c
;
rtcd
->
subpix
.
eighttap_avg16x16
=
vp8_eighttap_predict_avg16x16_c
;
...
...
@@ -93,7 +92,7 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) {
rtcd
->
subpix
.
eighttap_avg4x4_sharp
=
vp8_eighttap_predict_avg4x4_sharp_c
;
rtcd
->
subpix
.
eighttap8x4_sharp
=
vp8_eighttap_predict8x4_sharp_c
;
rtcd
->
subpix
.
eighttap4x4_sharp
=
vp8_eighttap_predict_sharp_c
;
#endif
rtcd
->
subpix
.
sixtap16x16
=
vp8_sixtap_predict16x16_c
;
rtcd
->
subpix
.
sixtap8x8
=
vp8_sixtap_predict8x8_c
;
rtcd
->
subpix
.
sixtap_avg16x16
=
vp8_sixtap_predict_avg16x16_c
;
...
...
vp8/common/reconinter.c
View file @
4aabfaa5
...
...
@@ -38,7 +38,6 @@ void vp8_setup_interp_filters(MACROBLOCKD *xd,
xd
->
subpixel_predict_avg16x16
=
SUBPIX_INVOKE
(
&
cm
->
rtcd
.
subpix
,
sixtap_avg16x16
);
}
#if CONFIG_ENHANCED_INTERP
else
if
(
mcomp_filter_type
==
EIGHTTAP
#if CONFIG_SWITCHABLE_INTERP
||
...
...
@@ -75,7 +74,6 @@ void vp8_setup_interp_filters(MACROBLOCKD *xd,
xd
->
subpixel_predict_avg16x16
=
SUBPIX_INVOKE
(
&
cm
->
rtcd
.
subpix
,
eighttap_avg16x16_sharp
);
}
#endif
else
{
xd
->
subpixel_predict
=
SUBPIX_INVOKE
(
&
cm
->
rtcd
.
subpix
,
bilinear4x4
);
...
...
vp8/common/subpixel.h
View file @
4aabfaa5
...
...
@@ -58,7 +58,6 @@ extern prototype_subpixel_predict(vp8_subpix_sixtap4x4);
#endif
extern
prototype_subpixel_predict
(
vp8_subpix_sixtap_avg4x4
);
#if CONFIG_ENHANCED_INTERP
#ifndef vp8_subpix_eighttap16x16
#define vp8_subpix_eighttap16x16 vp8_eighttap_predict16x16_c
#endif
...
...
@@ -128,7 +127,6 @@ extern prototype_subpixel_predict(vp8_subpix_eighttap4x4_sharp);
#define vp8_subpix_eighttap_avg4x4_sharp vp8_eighttap_predict_avg4x4_sharp_c
#endif
extern
prototype_subpixel_predict
(
vp8_subpix_eighttap_avg4x4_sharp
);
#endif
/* CONFIG_ENAHNCED_INTERP */
#ifndef vp8_subpix_bilinear16x16
#define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_c
...
...
@@ -167,7 +165,6 @@ extern prototype_subpixel_predict(vp8_subpix_bilinear_avg4x4);
typedef
prototype_subpixel_predict
((
*
vp8_subpix_fn_t
));
typedef
struct
{
#if CONFIG_ENHANCED_INTERP
vp8_subpix_fn_t
eighttap16x16
;
vp8_subpix_fn_t
eighttap8x8
;
vp8_subpix_fn_t
eighttap_avg16x16
;
...
...
@@ -182,7 +179,6 @@ typedef struct {
vp8_subpix_fn_t
eighttap_avg4x4_sharp
;
vp8_subpix_fn_t
eighttap8x4_sharp
;
vp8_subpix_fn_t
eighttap4x4_sharp
;
#endif
vp8_subpix_fn_t
sixtap16x16
;
vp8_subpix_fn_t
sixtap8x8
;
vp8_subpix_fn_t
sixtap_avg16x16
;
...
...
vp8/common/x86/x86_systemdependent.c
View file @
4aabfaa5
...
...
@@ -46,12 +46,12 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
rtcd
->
recon
.
copy8x4
=
vp8_copy_mem8x4_mmx
;
rtcd
->
recon
.
copy16x16
=
vp8_copy_mem16x16_mmx
;
#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
/* Disabled due to unsupported enhanced interpolation/high_prec mv
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_mmx;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_mmx;
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_mmx;
rtcd->subpix.sixtap4x4 = vp8_sixtap_predict4x4_mmx;
#endif
*/
rtcd
->
subpix
.
bilinear16x16
=
vp8_bilinear_predict16x16_mmx
;
rtcd
->
subpix
.
bilinear8x8
=
vp8_bilinear_predict8x8_mmx
;
rtcd
->
subpix
.
bilinear8x4
=
vp8_bilinear_predict8x4_mmx
;
...
...
@@ -91,11 +91,11 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
// rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_sse2;
#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
/* Disabled due to unsupported enhanced interpolation/high_prec mv
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_sse2;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_sse2;
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_sse2;
#endif
*/
rtcd
->
subpix
.
bilinear16x16
=
vp8_bilinear_predict16x16_sse2
;
rtcd
->
subpix
.
bilinear8x8
=
vp8_bilinear_predict8x8_sse2
;
...
...
@@ -121,14 +121,14 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
#if HAVE_SSSE3
if
(
flags
&
HAS_SSSE3
)
{
#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
/* Disabled due to unsupported enhanced interpolation/high_prec mv
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_ssse3;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_ssse3;
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_ssse3;
rtcd->subpix.sixtap4x4 = vp8_sixtap_predict4x4_ssse3;
rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_ssse3;
rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_ssse3;
#endif
*/
/* these are disable because of unsupported diagonal pred modes
rtcd->recon.build_intra_predictors_mbuv =
...
...
vp8/decoder/decodframe.c
View file @
4aabfaa5
...
...
@@ -771,15 +771,11 @@ static void init_frame(VP8D_COMP *pbi) {
}
else
{
if
(
!
pc
->
use_bilinear_mc_filter
)
#if CONFIG_ENHANCED_INTERP
pc
->
mcomp_filter_type
=
EIGHTTAP
;
#else
pc
->
mcomp_filter_type
=
SIXTAP
;
#endif
else
pc
->
mcomp_filter_type
=
BILINEAR
;
/* To enable choice of different interp
l
oation filters */
/* To enable choice of different interpo
l
ation filters */
vp8_setup_interp_filters
(
xd
,
pc
->
mcomp_filter_type
,
pc
);
}
...
...
@@ -1251,7 +1247,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
/* Is high precision mv allowed */
xd
->
allow_high_precision_mv
=
(
unsigned
char
)
vp8_read_bit
(
bc
);
#endif
#if CONFIG_ENHANCED_INTERP
// Read the type of subpel filter to use
#if CONFIG_SWITCHABLE_INTERP
if
(
vp8_read_bit
(
bc
))
{
...
...
@@ -1263,7 +1258,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
}
/* To enable choice of different interploation filters */
vp8_setup_interp_filters
(
xd
,
pc
->
mcomp_filter_type
,
pc
);
#endif
}
pc
->
refresh_entropy_probs
=
vp8_read_bit
(
bc
);
...
...
vp8/encoder/bitstream.c
View file @
4aabfaa5
...
...
@@ -2273,7 +2273,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
// Signal whether to allow high MV precision
vp8_write_bit
(
bc
,
(
xd
->
allow_high_precision_mv
)
?
1
:
0
);
#endif
#if CONFIG_ENHANCED_INTERP
#if CONFIG_SWITCHABLE_INTERP
if
(
pc
->
mcomp_filter_type
==
SWITCHABLE
)
{
/* Check to see if only one of the filters is actually used */
...
...
@@ -2301,7 +2300,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
if
(
pc
->
mcomp_filter_type
!=
SWITCHABLE
)
#endif
/* CONFIG_SWITCHABLE_INTERP */
vp8_write_literal
(
bc
,
(
pc
->
mcomp_filter_type
),
2
);
#endif
/* CONFIG_ENHANCED_INTERP */
}
vp8_write_bit
(
bc
,
pc
->
refresh_entropy_probs
);
...
...
vp8/encoder/mcomp.c
View file @
4aabfaa5
...
...
@@ -257,10 +257,14 @@ int vp8_find_best_sub_pixel_step_iteratively(MACROBLOCK *x, BLOCK *b, BLOCKD *d,
int
buf_r1
,
buf_r2
,
buf_c1
,
buf_c2
;
// Clamping to avoid out-of-range data access
buf_r1
=
((
bestmv
->
as_mv
.
row
-
INTERP_EXTEND
)
<
x
->
mv_row_min
)
?
(
bestmv
->
as_mv
.
row
-
x
->
mv_row_min
)
:
INTERP_EXTEND
;
buf_r2
=
((
bestmv
->
as_mv
.
row
+
INTERP_EXTEND
)
>
x
->
mv_row_max
)
?
(
x
->
mv_row_max
-
bestmv
->
as_mv
.
row
)
:
INTERP_EXTEND
;
buf_c1
=
((
bestmv
->
as_mv
.
col
-
INTERP_EXTEND
)
<
x
->
mv_col_min
)
?
(
bestmv
->
as_mv
.
col
-
x
->
mv_col_min
)
:
INTERP_EXTEND
;
buf_c2
=
((
bestmv
->
as_mv
.
col
+
INTERP_EXTEND
)
>
x
->
mv_col_max
)
?
(
x
->
mv_col_max
-
bestmv
->
as_mv
.
col
)
:
INTERP_EXTEND
;
buf_r1
=
((
bestmv
->
as_mv
.
row
-
INTERP_EXTEND
)
<
x
->
mv_row_min
)
?
(
bestmv
->
as_mv
.
row
-
x
->
mv_row_min
)
:
INTERP_EXTEND
-
1
;
buf_r2
=
((
bestmv
->
as_mv
.
row
+
INTERP_EXTEND
)
>
x
->
mv_row_max
)
?
(
x
->
mv_row_max
-
bestmv
->
as_mv
.
row
)
:
INTERP_EXTEND
-
1
;
buf_c1
=
((
bestmv
->
as_mv
.
col
-
INTERP_EXTEND
)
<
x
->
mv_col_min
)
?
(
bestmv
->
as_mv
.
col
-
x
->
mv_col_min
)
:
INTERP_EXTEND
-
1
;
buf_c2
=
((
bestmv
->
as_mv
.
col
+
INTERP_EXTEND
)
>
x
->
mv_col_max
)
?
(
x
->
mv_col_max
-
bestmv
->
as_mv
.
col
)
:
INTERP_EXTEND
-
1
;
y_stride
=
32
;
/* Copy to intermediate buffer before searching. */
...
...
vp8/encoder/onyx_if.c
View file @
4aabfaa5
...
...
@@ -81,17 +81,19 @@ static void set_default_lf_deltas(VP8_COMP *cpi);
extern
const
int
vp8_gf_interval_table
[
101
];
#
if CONFIG_ENHANCED_INTERP
#define SEARCH_BEST_FILTER 0
/* to search for
best filter */
#
define SEARCH_BEST_FILTER 0
/* to search exhaustively for
best filter */
#define RESET_FOREACH_FILTER 0
/* whether to reset the encoder state
*
before trying each new filter */
#define SHARP_FILTER_QTHRESH 0
/* Q threshold for 8-tap sharp filter */
#endif
before trying each new filter */
#define SHARP_FILTER_QTHRESH 0
/* Q threshold for 8-tap sharp filter */
#if CONFIG_HIGH_PRECISION_MV
#define ALTREF_HIGH_PRECISION_MV 1
/* whether to use high precision mv for altref computation */
#define HIGH_PRECISION_MV_QTHRESH 200
/* Q threshold for use of high precision mv
* Choose a very high value for now so
* that HIGH_PRECISION is always chosen */
#define ALTREF_HIGH_PRECISION_MV 1
/* whether to use high precision mv
for altref computation */
#define HIGH_PRECISION_MV_QTHRESH 200
/* Q threshold for use of high precision
mv. Choose a very high value for
now so that HIGH_PRECISION is always
chosen */
#endif
#if CONFIG_INTERNAL_STATS
...
...
@@ -778,9 +780,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
sf
->
first_step
=
0
;
sf
->
max_step_search_steps
=
MAX_MVSEARCH_STEPS
;
#if CONFIG_ENHANCED_INTERP
sf
->
search_best_filter
=
SEARCH_BEST_FILTER
;
#endif
break
;
case
1
:
#if CONFIG_PRED_FILTER
...
...
@@ -1586,11 +1586,7 @@ void vp8_change_config(VP8_PTR ptr, VP8_CONFIG *oxcf) {
cpi
->
cq_target_quality
=
cpi
->
oxcf
.
cq_level
;
if
(
!
cm
->
use_bilinear_mc_filter
)
#if CONFIG_ENHANCED_INTERP
cm
->
mcomp_filter_type
=
EIGHTTAP
;
#else
cm
->
mcomp_filter_type
=
SIXTAP
;
#endif
else
cm
->
mcomp_filter_type
=
BILINEAR
;
...
...
@@ -2895,7 +2891,6 @@ static void encode_frame_to_data_rate
int
loop_size_estimate
=
0
;
#if CONFIG_ENHANCED_INTERP
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
#if RESET_FOREACH_FILTER
int
q_low0
;
...
...
@@ -2921,7 +2916,6 @@ static void encode_frame_to_data_rate
int
mcomp_filters
=
sizeof
(
mcomp_filters_to_search
)
/
sizeof
(
*
mcomp_filters_to_search
);
int
mcomp_filter_index
=
0
;
INT64
mcomp_filter_cost
[
4
];
#endif
// Clear down mmx registers to allow floating point in what follows
vp8_clear_system_state
();
...
...
@@ -3137,9 +3131,7 @@ static void encode_frame_to_data_rate
loop_count
=
0
;
#if CONFIG_HIGH_PRECISION_MV || CONFIG_ENHANCED_INTERP
if
(
cm
->
frame_type
!=
KEY_FRAME
)
{
#if CONFIG_ENHANCED_INTERP
/* TODO: Decide this more intelligently */
if
(
sf
->
search_best_filter
)
{
cm
->
mcomp_filter_type
=
mcomp_filters_to_search
[
0
];
...
...
@@ -3152,13 +3144,11 @@ static void encode_frame_to_data_rate
(
Q
<
SHARP_FILTER_QTHRESH
?
EIGHTTAP_SHARP
:
EIGHTTAP
);
#endif
}
#endif
#if CONFIG_HIGH_PRECISION_MV
/* TODO: Decide this more intelligently */
xd
->
allow_high_precision_mv
=
(
Q
<
HIGH_PRECISION_MV_QTHRESH
);
#endif
}
#endif
#if CONFIG_POSTPROC
...
...
@@ -3206,7 +3196,7 @@ static void encode_frame_to_data_rate
vp8_write_yuv_frame
(
cpi
->
Source
);
#endif
#if
CONFIG_ENHANCED_INTERP &&
RESET_FOREACH_FILTER
#if RESET_FOREACH_FILTER
if
(
sf
->
search_best_filter
)
{
q_low0
=
q_low
;
q_high0
=
q_high
;
...
...
@@ -3468,7 +3458,7 @@ static void encode_frame_to_data_rate
if
(
cpi
->
is_src_frame_alt_ref
)
Loop
=
FALSE
;
#if
CONFIG_ENHANCED_INTERP &&
CONFIG_SWITCHABLE_INTERP
#if CONFIG_SWITCHABLE_INTERP
if
(
cm
->
frame_type
!=
KEY_FRAME
&&
!
sf
->
search_best_filter
&&
cm
->
mcomp_filter_type
==
SWITCHABLE
)
{
...
...
@@ -3502,7 +3492,6 @@ static void encode_frame_to_data_rate
}
#endif
#if CONFIG_ENHANCED_INTERP
if
(
Loop
==
FALSE
&&
cm
->
frame_type
!=
KEY_FRAME
&&
sf
->
search_best_filter
)
{
if
(
mcomp_filter_index
<
mcomp_filters
)
{
INT64
err
=
vp8_calc_ss_err
(
cpi
->
Source
,
...
...
@@ -3555,7 +3544,6 @@ static void encode_frame_to_data_rate
#endif
}
}
#endif
/* CONFIG_ENHANCED_INTERP */
if
(
Loop
==
TRUE
)
{
loop_count
++
;
...
...
vp8/encoder/onyx_int.h
View file @
4aabfaa5
...
...
@@ -317,9 +317,7 @@ typedef struct {
int
optimize_coefficients
;
int
no_skip_block4x4_search
;
int
improved_mv_pred
;
#if CONFIG_ENHANCED_INTERP
int
search_best_filter
;
#endif
}
SPEED_FEATURES
;
...
...
vpx_scale/arm/scalesystemdependent.c
View file @
4aabfaa5
...
...
@@ -87,9 +87,11 @@ void vp8_scale_machine_specific_config() {
if
(
flags
&
HAS_NEON
)
#endif
{
#if VP8BORDERINPIXELS == 32
vp8_yv12_extend_frame_borders_ptr
=
vp8_yv12_extend_frame_borders_neon
;
vp8_yv12_copy_frame_yonly_ptr
=
vp8_yv12_copy_frame_yonly_neon
;
vp8_yv12_copy_frame_ptr
=
vp8_yv12_copy_frame_neon
;
#endif
}
#endif
}
vpx_scale/yv12config.h
View file @
4aabfaa5
...
...
@@ -11,6 +11,9 @@
#ifndef YV12_CONFIG_H
#define YV12_CONFIG_H
#include "vpx_config.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -18,13 +21,8 @@ extern "C"
#define VP7BORDERINPIXELS 48
#if CONFIG_ENHANCED_INTERP
#define VP8BORDERINPIXELS 64
#define INTERP_EXTEND 4
#else
#define VP8BORDERINPIXELS 32
#define INTERP_EXTEND 3
#endif
/*************************************
For INT_YUV:
...
...
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