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
aac86aa0
Commit
aac86aa0
authored
Feb 03, 2016
by
Yaowu Xu
Committed by
Gerrit Code Review
Feb 03, 2016
Browse files
Merge "Merge branch 'master' into nextgenv2" into nextgenv2
parents
6cfb4885
238cc11c
Changes
6
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_loopfilter.h
View file @
aac86aa0
...
...
@@ -69,6 +69,7 @@ typedef struct {
struct
loopfilter
{
int
filter_level
;
int
last_filt_level
;
int
sharpness_level
;
int
last_sharpness_level
;
...
...
vp9/encoder/vp9_denoiser.h
View file @
aac86aa0
...
...
@@ -75,7 +75,8 @@ int vp9_denoiser_alloc(VP9_DENOISER *denoiser, int width, int height,
// This function is used by both c and sse2 denoiser implementations.
// Define it as a static function within the scope where vp9_denoiser.h
// is referenced.
static
int
total_adj_strong_thresh
(
BLOCK_SIZE
bs
,
int
increase_denoising
)
{
static
INLINE
int
total_adj_strong_thresh
(
BLOCK_SIZE
bs
,
int
increase_denoising
)
{
return
(
1
<<
num_pels_log2_lookup
[
bs
])
*
(
increase_denoising
?
3
:
2
);
}
#endif
...
...
vp9/encoder/vp9_encoder.c
View file @
aac86aa0
...
...
@@ -2823,6 +2823,7 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
if
(
xd
->
lossless
)
{
lf
->
filter_level
=
0
;
lf
->
last_filt_level
=
0
;
}
else
{
struct
vpx_usec_timer
timer
;
...
...
@@ -2830,7 +2831,16 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
vpx_usec_timer_start
(
&
timer
);
vp9_pick_filter_level
(
cpi
->
Source
,
cpi
,
cpi
->
sf
.
lpf_pick
);
if
(
!
cpi
->
rc
.
is_src_frame_alt_ref
)
{
if
((
cpi
->
common
.
frame_type
==
KEY_FRAME
)
&&
(
!
cpi
->
rc
.
this_key_frame_forced
))
{
lf
->
last_filt_level
=
0
;
}
vp9_pick_filter_level
(
cpi
->
Source
,
cpi
,
cpi
->
sf
.
lpf_pick
);
lf
->
last_filt_level
=
lf
->
filter_level
;
}
else
{
lf
->
filter_level
=
0
;
}
vpx_usec_timer_mark
(
&
timer
);
cpi
->
time_pick_lpf
+=
vpx_usec_timer_elapsed
(
&
timer
);
...
...
@@ -3023,7 +3033,7 @@ static void output_frame_level_debug_stats(VP9_COMP *cpi) {
"%7.2lf %7.2lf %7.2lf %7.2lf %7.2lf"
"%6d %6d %5d %5d %5d "
"%10"PRId64" %10.3lf"
"%10lf %8u %10"PRId64" %10d %10d %10d\n",
"%10lf %8u %10"PRId64" %10d %10d
%10d
%10d\n",
cpi->common.current_video_frame,
cm->width, cm->height,
cpi->td.rd_counts.m_search_count,
...
...
@@ -3055,7 +3065,8 @@ static void output_frame_level_debug_stats(VP9_COMP *cpi) {
(1 + cpi->twopass.total_left_stats.coded_error),
cpi->tot_recode_hits, recon_err, cpi->rc.kf_boost,
cpi->twopass.kf_zeromotion_pct,
cpi->twopass.fr_content_type);
cpi->twopass.fr_content_type,
cm->lf.filter_level);
fclose(f);
...
...
@@ -4326,7 +4337,7 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
cpi
->
svc
.
layer_context
[
cpi
->
svc
.
spatial_layer_id
].
has_alt_frame
=
1
;
#endif
if
(
oxcf
->
arnr_max_frames
>
0
)
{
if
(
(
oxcf
->
arnr_max_frames
>
0
)
&&
(
oxcf
->
arnr_strength
>
0
))
{
// Produce the filtered ARF frame.
vp9_temporal_filter
(
cpi
,
arf_src_index
);
vpx_extend_frame_borders
(
&
cpi
->
alt_ref_buffer
);
...
...
vp9/encoder/vp9_mcomp.c
View file @
aac86aa0
...
...
@@ -86,7 +86,9 @@ static int mv_err_cost(const MV *mv, const MV *ref,
if
(
mvcost
)
{
const
MV
diff
=
{
mv
->
row
-
ref
->
row
,
mv
->
col
-
ref
->
col
};
return
ROUND_POWER_OF_TWO
(
mv_cost
(
&
diff
,
mvjcost
,
mvcost
)
*
// TODO(aconverse): See if this shift needs to be tied to
// VP9_PROB_COST_SHIFT.
return
ROUND_POWER_OF_TWO
((
unsigned
)
mv_cost
(
&
diff
,
mvjcost
,
mvcost
)
*
error_per_bit
,
13
);
}
return
0
;
...
...
@@ -96,8 +98,9 @@ static int mvsad_err_cost(const MACROBLOCK *x, const MV *mv, const MV *ref,
int
error_per_bit
)
{
const
MV
diff
=
{
mv
->
row
-
ref
->
row
,
mv
->
col
-
ref
->
col
};
return
ROUND_POWER_OF_TWO
(
mv_cost
(
&
diff
,
x
->
nmvjointsadcost
,
x
->
nmvsadcost
)
*
error_per_bit
,
8
);
// TODO(aconverse): See if this shift needs to be tied to VP9_PROB_COST_SHIFT.
return
ROUND_POWER_OF_TWO
((
unsigned
)
mv_cost
(
&
diff
,
x
->
nmvjointsadcost
,
x
->
nmvsadcost
)
*
error_per_bit
,
8
);
}
void
vp9_init_dsmotion_compensation
(
search_site_config
*
cfg
,
int
stride
)
{
...
...
vp9/encoder/vp9_picklpf.c
View file @
aac86aa0
...
...
@@ -78,7 +78,8 @@ static int search_filter_level(const YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi,
// Start the search at the previous frame filter level unless it is now out of
// range.
int
filt_mid
=
clamp
(
lf
->
filter_level
,
min_filter_level
,
max_filter_level
);
int
filt_mid
=
clamp
(
lf
->
last_filt_level
,
min_filter_level
,
max_filter_level
);
int
filter_step
=
filt_mid
<
16
?
4
:
filt_mid
/
4
;
// Sum squared error at each filter level
int64_t
ss_err
[
MAX_LOOP_FILTER
+
1
];
...
...
vpxenc.c
View file @
aac86aa0
...
...
@@ -454,6 +454,9 @@ static const arg_def_t *vp9_args[] = {
&
frame_parallel_decoding
,
&
aq_mode
,
&
frame_periodic_boost
,
&
noise_sens
,
&
tune_content
,
&
input_color_space
,
&
min_gf_interval
,
&
max_gf_interval
,
#if CONFIG_VP9_HIGHBITDEPTH
&
bitdeptharg
,
&
inbitdeptharg
,
#endif // CONFIG_VP9_HIGHBITDEPTH
NULL
};
static
const
int
vp9_arg_ctrl_map
[]
=
{
...
...
@@ -480,6 +483,9 @@ static const arg_def_t *vp10_args[] = {
&
frame_parallel_decoding
,
&
aq_mode
,
&
frame_periodic_boost
,
&
noise_sens
,
&
tune_content
,
&
input_color_space
,
&
min_gf_interval
,
&
max_gf_interval
,
#if CONFIG_VP9_HIGHBITDEPTH
&
bitdeptharg
,
&
inbitdeptharg
,
#endif // CONFIG_VP9_HIGHBITDEPTH
NULL
};
static
const
int
vp10_arg_ctrl_map
[]
=
{
...
...
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