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
3a162561
Commit
3a162561
authored
Jun 03, 2014
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Jun 03, 2014
Browse files
Merge "Removing lossless field from VP9EncoderConfig."
parents
a808dfe3
bd0bb363
Changes
5
Hide whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_encodeframe.c
View file @
3a162561
...
...
@@ -2369,22 +2369,6 @@ static void init_encode_frame_mb_context(VP9_COMP *cpi) {
sizeof
(
*
xd
->
above_seg_context
)
*
aligned_mi_cols
);
}
static
void
switch_lossless_mode
(
VP9_COMP
*
cpi
,
int
lossless
)
{
if
(
lossless
)
{
// printf("Switching to lossless\n");
cpi
->
mb
.
fwd_txm4x4
=
vp9_fwht4x4
;
cpi
->
mb
.
itxm_add
=
vp9_iwht4x4_add
;
cpi
->
mb
.
optimize
=
0
;
cpi
->
common
.
lf
.
filter_level
=
0
;
cpi
->
zbin_mode_boost_enabled
=
0
;
cpi
->
common
.
tx_mode
=
ONLY_4X4
;
}
else
{
// printf("Not lossless\n");
cpi
->
mb
.
fwd_txm4x4
=
vp9_fdct4x4
;
cpi
->
mb
.
itxm_add
=
vp9_idct4x4_add
;
}
}
static
int
check_dual_ref_flags
(
VP9_COMP
*
cpi
)
{
const
int
ref_flags
=
cpi
->
ref_frame_flags
;
...
...
@@ -2421,7 +2405,7 @@ static MV_REFERENCE_FRAME get_frame_type(const VP9_COMP *cpi) {
}
static
TX_MODE
select_tx_mode
(
const
VP9_COMP
*
cpi
)
{
if
(
cpi
->
oxcf
.
lossless
)
{
if
(
cpi
->
mb
.
e_mbd
.
lossless
)
{
return
ONLY_4X4
;
}
else
if
(
cpi
->
common
.
current_video_frame
==
0
)
{
return
TX_MODE_SELECT
;
...
...
@@ -3011,13 +2995,21 @@ static void encode_frame_internal(VP9_COMP *cpi) {
vp9_zero
(
rd_opt
->
tx_select_diff
);
vp9_zero
(
rd_opt
->
tx_select_threshes
);
cm
->
tx_mode
=
select_tx_mode
(
cpi
);
cpi
->
mb
.
e_mbd
.
lossless
=
cm
->
base_qindex
==
0
&&
cm
->
y_dc_delta_q
==
0
&&
cm
->
uv_dc_delta_q
==
0
&&
cm
->
uv_ac_delta_q
==
0
;
switch_lossless_mode
(
cpi
,
cpi
->
mb
.
e_mbd
.
lossless
);
cm
->
tx_mode
=
select_tx_mode
(
cpi
);
cpi
->
mb
.
fwd_txm4x4
=
cpi
->
mb
.
e_mbd
.
lossless
?
vp9_fwht4x4
:
vp9_fdct4x4
;
cpi
->
mb
.
itxm_add
=
cpi
->
mb
.
e_mbd
.
lossless
?
vp9_iwht4x4_add
:
vp9_idct4x4_add
;
if
(
cpi
->
mb
.
e_mbd
.
lossless
)
{
cpi
->
mb
.
optimize
=
0
;
cpi
->
common
.
lf
.
filter_level
=
0
;
cpi
->
zbin_mode_boost_enabled
=
0
;
}
vp9_frame_init_quantizer
(
cpi
);
...
...
vp9/encoder/vp9_encoder.c
View file @
3a162561
...
...
@@ -393,11 +393,6 @@ static void set_speed_features(VP9_COMP *cpi) {
// Set rd thresholds based on mode and speed setting
vp9_set_rd_speed_thresholds
(
cpi
);
vp9_set_rd_speed_thresholds_sub8x8
(
cpi
);
cpi
->
mb
.
fwd_txm4x4
=
vp9_fdct4x4
;
if
(
cpi
->
oxcf
.
lossless
||
cpi
->
mb
.
e_mbd
.
lossless
)
{
cpi
->
mb
.
fwd_txm4x4
=
vp9_fwht4x4
;
}
}
static
void
alloc_raw_frame_buffers
(
VP9_COMP
*
cpi
)
{
...
...
@@ -596,16 +591,6 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
if
(
cpi
->
oxcf
.
mode
==
REALTIME
)
cpi
->
oxcf
.
play_alternate
=
0
;
cpi
->
oxcf
.
lossless
=
oxcf
->
lossless
;
if
(
cpi
->
oxcf
.
lossless
)
{
// In lossless mode, make sure right quantizer range and correct transform
// is set.
cpi
->
oxcf
.
worst_allowed_q
=
0
;
cpi
->
oxcf
.
best_allowed_q
=
0
;
cpi
->
mb
.
itxm_add
=
vp9_iwht4x4_add
;
}
else
{
cpi
->
mb
.
itxm_add
=
vp9_idct4x4_add
;
}
rc
->
baseline_gf_interval
=
DEFAULT_GF_INTERVAL
;
cpi
->
ref_frame_flags
=
VP9_ALT_FLAG
|
VP9_GOLD_FLAG
|
VP9_LAST_FLAG
;
...
...
@@ -2629,6 +2614,9 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
if
(
cpi
->
pass
==
1
&&
(
!
cpi
->
use_svc
||
cpi
->
svc
.
number_temporal_layers
==
1
))
{
const
int
lossless
=
is_lossless_requested
(
&
cpi
->
oxcf
);
cpi
->
mb
.
fwd_txm4x4
=
lossless
?
vp9_fwht4x4
:
vp9_fdct4x4
;
cpi
->
mb
.
itxm_add
=
lossless
?
vp9_iwht4x4_add
:
vp9_idct4x4_add
;
vp9_first_pass
(
cpi
);
}
else
if
(
cpi
->
pass
==
2
&&
(
!
cpi
->
use_svc
||
cpi
->
svc
.
number_temporal_layers
==
1
))
{
...
...
vp9/encoder/vp9_encoder.h
View file @
3a162561
...
...
@@ -228,7 +228,6 @@ typedef struct VP9EncoderConfig {
int
worst_allowed_q
;
int
best_allowed_q
;
int
cq_level
;
int
lossless
;
AQ_MODE
aq_mode
;
// Adaptive Quantization mode
// Internal frame size scaling.
...
...
@@ -286,6 +285,10 @@ typedef struct VP9EncoderConfig {
vp8e_tuning
tuning
;
}
VP9EncoderConfig
;
static
INLINE
int
is_lossless_requested
(
const
VP9EncoderConfig
*
cfg
)
{
return
cfg
->
best_allowed_q
==
0
&&
cfg
->
worst_allowed_q
==
0
;
}
static
INLINE
int
is_best_mode
(
MODE
mode
)
{
return
mode
==
ONE_PASS_BEST
||
mode
==
TWO_PASS_SECOND_BEST
;
}
...
...
vp9/encoder/vp9_speed_features.c
View file @
3a162561
...
...
@@ -291,7 +291,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf
->
subpel_search_method
=
SUBPEL_TREE
;
sf
->
subpel_iters_per_step
=
2
;
sf
->
subpel_force_stop
=
0
;
sf
->
optimize_coefficients
=
!
oxcf
->
lossless
;
sf
->
optimize_coefficients
=
!
is_
lossless
_requested
(
&
cpi
->
oxcf
)
;
sf
->
reduce_first_step_size
=
0
;
sf
->
auto_mv_step_size
=
0
;
sf
->
max_step_search_steps
=
MAX_MVSEARCH_STEPS
;
...
...
vp9/vp9_cx_iface.c
View file @
3a162561
...
...
@@ -331,8 +331,10 @@ static vpx_codec_err_t set_encoder_config(
oxcf
->
target_bandwidth
=
1000
*
cfg
->
rc_target_bitrate
;
oxcf
->
rc_max_intra_bitrate_pct
=
extra_cfg
->
rc_max_intra_bitrate_pct
;
oxcf
->
best_allowed_q
=
vp9_quantizer_to_qindex
(
cfg
->
rc_min_quantizer
);
oxcf
->
worst_allowed_q
=
vp9_quantizer_to_qindex
(
cfg
->
rc_max_quantizer
);
oxcf
->
best_allowed_q
=
extra_cfg
->
lossless
?
0
:
vp9_quantizer_to_qindex
(
cfg
->
rc_min_quantizer
);
oxcf
->
worst_allowed_q
=
extra_cfg
->
lossless
?
0
:
vp9_quantizer_to_qindex
(
cfg
->
rc_max_quantizer
);
oxcf
->
cq_level
=
vp9_quantizer_to_qindex
(
extra_cfg
->
cq_level
);
oxcf
->
fixed_q
=
-
1
;
...
...
@@ -376,8 +378,6 @@ static vpx_codec_err_t set_encoder_config(
oxcf
->
tile_columns
=
extra_cfg
->
tile_columns
;
oxcf
->
tile_rows
=
extra_cfg
->
tile_rows
;
oxcf
->
lossless
=
extra_cfg
->
lossless
;
oxcf
->
error_resilient_mode
=
cfg
->
g_error_resilient
;
oxcf
->
frame_parallel_decoding_mode
=
extra_cfg
->
frame_parallel_decoding_mode
;
...
...
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