Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Guillaume Martres
aom-rav1e
Commits
c297fd00
Commit
c297fd00
authored
Feb 23, 2016
by
Thomas
Committed by
Yaowu Xu
Feb 25, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add quantisation matrix range parameters.
Change-Id: I25911ea7666465ff19821b07e20c26586e88401c
parent
0527894f
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
152 additions
and
66 deletions
+152
-66
vp10/common/onyxc_int.h
vp10/common/onyxc_int.h
+2
-0
vp10/common/quant_common.c
vp10/common/quant_common.c
+4
-6
vp10/common/quant_common.h
vp10/common/quant_common.h
+7
-7
vp10/decoder/decodeframe.c
vp10/decoder/decodeframe.c
+24
-13
vp10/encoder/bitstream.c
vp10/encoder/bitstream.c
+4
-0
vp10/encoder/encoder.c
vp10/encoder/encoder.c
+2
-0
vp10/encoder/encoder.h
vp10/encoder/encoder.h
+4
-0
vp10/encoder/quantize.c
vp10/encoder/quantize.c
+7
-3
vp10/vp10_cx_iface.c
vp10/vp10_cx_iface.c
+40
-18
vpx/vp8cx.h
vpx/vp8cx.h
+33
-0
vpxenc.c
vpxenc.c
+25
-19
No files found.
vp10/common/onyxc_int.h
View file @
c297fd00
...
...
@@ -212,6 +212,8 @@ typedef struct VP10Common {
qm_val_t
*
uv_qmatrix
[
MAX_SEGMENTS
][
2
][
TX_SIZES
];
int
using_qmatrix
;
int
min_qmlevel
;
int
max_qmlevel
;
#endif
/* We allocate a MODE_INFO struct for each macroblock, together with
...
...
vp10/common/quant_common.c
View file @
c297fd00
...
...
@@ -212,15 +212,13 @@ int vp10_get_qindex(const struct segmentation *seg, int segment_id,
}
#if CONFIG_AOM_QM
qm_val_t* aom_iqmatrix(VP10_COMMON* cm, int q
index
, int is_chroma,
qm_val_t* aom_iqmatrix(VP10_COMMON* cm, int q
mlevel
, int is_chroma,
int log2sizem2, int is_intra) {
int scaled_q_index = aom_get_qmlevel(qindex);
return &cm->giqmatrix[scaled_q_index][!!is_chroma][!!is_intra][log2sizem2][0];
return &cm->giqmatrix[qmlevel][!!is_chroma][!!is_intra][log2sizem2][0];
}
qm_val_t* aom_qmatrix(VP10_COMMON* cm, int q
index
, int is_chroma,
qm_val_t* aom_qmatrix(VP10_COMMON* cm, int q
mlevel
, int is_chroma,
int log2sizem2, int is_intra) {
int scaled_q_index = aom_get_qmlevel(qindex);
return &cm->gqmatrix[scaled_q_index][!!is_chroma][!!is_intra][log2sizem2][0];
return &cm->gqmatrix[qmlevel][!!is_chroma][!!is_intra][log2sizem2][0];
}
static uint16_t
...
...
vp10/common/quant_common.h
View file @
c297fd00
...
...
@@ -25,12 +25,13 @@ extern "C" {
#define QINDEX_BITS 8
#if CONFIG_AOM_QM
// Total number of QM sets stored
#define NUM_QM_LEVELS 16
#define QM_LEVEL_BITS 4
#define NUM_QM_LEVELS (1 << QM_LEVEL_BITS)
/* Offset into the list of QMs. Actual number of levels used is
(NUM_QM_LEVELS-AOM_QM_OFFSET)
Lower value of AOM_QM_OFFSET implies more heavily weighted matrices.*/
#define
AOM_QM_FIRST 8
#define
AOM_QM_LAST NUM_QM_LEVELS
#define
DEFAULT_QM_FIRST (NUM_QM_LEVELS / 2)
#define
DEFAULT_QM_LAST (NUM_QM_LEVELS - 1)
#endif
struct
VP10Common
;
...
...
@@ -43,10 +44,9 @@ int vp10_get_qindex(const struct segmentation *seg, int segment_id,
#if CONFIG_AOM_QM
// Reduce the large number of quantizers to a smaller number of levels for which
// different matrices may be defined
static
inline
int
aom_get_qmlevel
(
int
qindex
)
{
int
qmlevel
=
(
qindex
*
(
AOM_QM_LAST
-
AOM_QM_FIRST
)
+
QINDEX_RANGE
/
2
)
/
QINDEX_RANGE
;
qmlevel
=
VPXMIN
(
qmlevel
+
AOM_QM_FIRST
,
NUM_QM_LEVELS
-
1
);
static
inline
int
aom_get_qmlevel
(
int
qindex
,
int
first
,
int
last
)
{
int
qmlevel
=
(
qindex
*
(
last
+
1
-
first
)
+
QINDEX_RANGE
/
2
)
/
QINDEX_RANGE
;
qmlevel
=
VPXMIN
(
qmlevel
+
first
,
NUM_QM_LEVELS
-
1
);
return
qmlevel
;
}
void
aom_qm_init
(
struct
VP10Common
*
cm
);
...
...
vp10/decoder/decodeframe.c
View file @
c297fd00
...
...
@@ -1118,6 +1118,13 @@ static void setup_quantization(VP10_COMMON *const cm,
cm
->
dequant_bit_depth
=
cm
->
bit_depth
;
#if CONFIG_AOM_QM
cm
->
using_qmatrix
=
vpx_rb_read_bit
(
rb
);
if
(
cm
->
using_qmatrix
)
{
cm
->
min_qmlevel
=
vpx_rb_read_literal
(
rb
,
QM_LEVEL_BITS
);
cm
->
max_qmlevel
=
vpx_rb_read_literal
(
rb
,
QM_LEVEL_BITS
);
}
else
{
cm
->
min_qmlevel
=
0
;
cm
->
max_qmlevel
=
0
;
}
#endif
}
...
...
@@ -1127,8 +1134,10 @@ static void setup_segmentation_dequant(VP10_COMMON *const cm) {
#if CONFIG_AOM_QM
int
lossless
;
int
j
=
0
;
int
qm
index
;
int
qm
level
;
int
using_qm
=
cm
->
using_qmatrix
;
int
minqm
=
cm
->
min_qmlevel
;
int
maxqm
=
cm
->
max_qmlevel
;
#endif
if
(
cm
->
seg
.
enabled
)
{
for
(
i
=
0
;
i
<
MAX_SEGMENTS
;
++
i
)
{
...
...
@@ -1145,13 +1154,14 @@ static void setup_segmentation_dequant(VP10_COMMON *const cm) {
cm
->
uv_dc_delta_q
==
0
&&
cm
->
uv_ac_delta_q
==
0
;
// NB: depends on base index so there is only 1 set per frame
// No quant weighting when lossless or signalled not using QM
qmindex
=
(
lossless
||
using_qm
==
0
)
?
QINDEX_RANGE
-
1
:
cm
->
base_qindex
;
qmlevel
=
(
lossless
||
using_qm
==
0
)
?
NUM_QM_LEVELS
-
1
:
aom_get_qmlevel
(
cm
->
base_qindex
,
minqm
,
maxqm
);
for
(
j
=
0
;
j
<
TX_SIZES
;
++
j
)
{
cm
->
y_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
0
,
j
,
1
);
cm
->
y_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
0
,
j
,
0
);
cm
->
uv_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
1
,
j
,
1
);
cm
->
uv_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
1
,
j
,
0
);
cm
->
y_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
0
,
j
,
1
);
cm
->
y_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
0
,
j
,
0
);
cm
->
uv_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
1
,
j
,
1
);
cm
->
uv_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
1
,
j
,
0
);
}
#endif
}
...
...
@@ -1170,13 +1180,14 @@ static void setup_segmentation_dequant(VP10_COMMON *const cm) {
lossless
=
qindex
==
0
&&
cm
->
y_dc_delta_q
==
0
&&
cm
->
uv_dc_delta_q
==
0
&&
cm
->
uv_ac_delta_q
==
0
;
// No quant weighting when lossless or signalled not using QM
qmindex
=
(
lossless
||
using_qm
==
0
)
?
QINDEX_RANGE
-
1
:
cm
->
base_qindex
;
qmlevel
=
(
lossless
||
using_qm
==
0
)
?
NUM_QM_LEVELS
-
1
:
aom_get_qmlevel
(
cm
->
base_qindex
,
minqm
,
maxqm
);
for
(
j
=
0
;
j
<
TX_SIZES
;
++
j
)
{
cm
->
y_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
0
,
j
,
1
);
cm
->
y_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
0
,
j
,
0
);
cm
->
uv_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
1
,
j
,
1
);
cm
->
uv_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
index
,
1
,
j
,
0
);
cm
->
y_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
0
,
j
,
1
);
cm
->
y_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
0
,
j
,
0
);
cm
->
uv_iqmatrix
[
i
][
1
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
1
,
j
,
1
);
cm
->
uv_iqmatrix
[
i
][
0
][
j
]
=
aom_iqmatrix
(
cm
,
qm
level
,
1
,
j
,
0
);
}
#endif
}
...
...
vp10/encoder/bitstream.c
View file @
c297fd00
...
...
@@ -865,6 +865,10 @@ static void encode_quantization(const VP10_COMMON *const cm,
write_delta_q
(
wb
,
cm
->
uv_ac_delta_q
);
#if CONFIG_AOM_QM
vpx_wb_write_bit
(
wb
,
cm
->
using_qmatrix
);
if
(
cm
->
using_qmatrix
)
{
vpx_wb_write_literal
(
wb
,
cm
->
min_qmlevel
,
QM_LEVEL_BITS
);
vpx_wb_write_literal
(
wb
,
cm
->
max_qmlevel
,
QM_LEVEL_BITS
);
}
#endif
}
...
...
vp10/encoder/encoder.c
View file @
c297fd00
...
...
@@ -3828,6 +3828,8 @@ int vp10_get_compressed_data(VP10_COMP *cpi, unsigned int *frame_flags,
#if CONFIG_AOM_QM
cm
->
using_qmatrix
=
cpi
->
oxcf
.
using_qm
;
cm
->
min_qmlevel
=
cpi
->
oxcf
.
qm_minlevel
;
cm
->
max_qmlevel
=
cpi
->
oxcf
.
qm_maxlevel
;
#endif
if
(
oxcf
->
pass
==
1
)
{
...
...
vp10/encoder/encoder.h
View file @
c297fd00
...
...
@@ -168,7 +168,11 @@ typedef struct VP10EncoderConfig {
int
best_allowed_q
;
int
cq_level
;
AQ_MODE
aq_mode
;
// Adaptive Quantization mode
#if CONFIG_AOM_QM
int
using_qm
;
int
qm_minlevel
;
int
qm_maxlevel
;
#endif
// Internal frame size scaling.
RESIZE_TYPE
resize_mode
;
...
...
vp10/encoder/quantize.c
View file @
c297fd00
...
...
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include <math.h>
#include "./vpx_dsp_rtcd.h"
#include "vpx_mem/vpx_mem.h"
#include "vpx_ports/mem.h"
...
...
@@ -388,12 +389,15 @@ void vp10_init_plane_quantizers(VP10_COMP *cpi, MACROBLOCK *x) {
const
int
segment_id
=
xd
->
mi
[
0
]
->
mbmi
.
segment_id
;
const
int
qindex
=
vp10_get_qindex
(
&
cm
->
seg
,
segment_id
,
cm
->
base_qindex
);
const
int
rdmult
=
vp10_compute_rd_mult
(
cpi
,
qindex
+
cm
->
y_dc_delta_q
);
const
int
lossless
=
xd
->
lossless
[
segment_id
];
int
i
;
#if CONFIG_AOM_QM
const
int
lossless
=
xd
->
lossless
[
segment_id
];
int
minqm
=
cm
->
min_qmlevel
;
int
maxqm
=
cm
->
max_qmlevel
;
// Quant matrix only depends on the base QP so there is only one set per frame
int
qmlevel
=
(
lossless
||
cm
->
using_qmatrix
==
0
)
?
NUM_QM_LEVELS
-
1
:
aom_get_qmlevel
(
cm
->
base_qindex
);
int
qmlevel
=
(
lossless
||
cm
->
using_qmatrix
==
0
)
?
NUM_QM_LEVELS
-
1
:
aom_get_qmlevel
(
cm
->
base_qindex
,
minqm
,
maxqm
);
#endif
// Y
...
...
vp10/vp10_cx_iface.c
View file @
c297fd00
...
...
@@ -41,6 +41,8 @@ struct vp10_extracfg {
unsigned
int
lossless
;
#if CONFIG_AOM_QM
unsigned
int
enable_qm
;
unsigned
int
qm_min
;
unsigned
int
qm_max
;
#endif
unsigned
int
frame_parallel_decoding_mode
;
AQ_MODE
aq_mode
;
...
...
@@ -54,25 +56,27 @@ struct vp10_extracfg {
};
static
struct
vp10_extracfg
default_extra_cfg
=
{
0
,
// cpu_used
1
,
// enable_auto_alt_ref
0
,
// noise_sensitivity
0
,
// sharpness
0
,
// static_thresh
6
,
// tile_columns
0
,
// tile_rows
7
,
// arnr_max_frames
5
,
// arnr_strength
0
,
// min_gf_interval; 0 -> default decision
0
,
// max_gf_interval; 0 -> default decision
VPX_TUNE_PSNR
,
// tuning
10
,
// cq_level
0
,
// rc_max_intra_bitrate_pct
0
,
// rc_max_inter_bitrate_pct
0
,
// gf_cbr_boost_pct
0
,
// lossless
0
,
// cpu_used
1
,
// enable_auto_alt_ref
0
,
// noise_sensitivity
0
,
// sharpness
0
,
// static_thresh
6
,
// tile_columns
0
,
// tile_rows
7
,
// arnr_max_frames
5
,
// arnr_strength
0
,
// min_gf_interval; 0 -> default decision
0
,
// max_gf_interval; 0 -> default decision
VPX_TUNE_PSNR
,
// tuning
10
,
// cq_level
0
,
// rc_max_intra_bitrate_pct
0
,
// rc_max_inter_bitrate_pct
0
,
// gf_cbr_boost_pct
0
,
// lossless
#if CONFIG_AOM_QM
0
,
// enable_qm
0
,
// enable_qm
DEFAULT_QM_FIRST
,
// qm_min
DEFAULT_QM_LAST
,
// qm_max
#endif
1
,
// frame_parallel_decoding_mode
NO_AQ
,
// aq_mode
...
...
@@ -365,6 +369,8 @@ static vpx_codec_err_t set_encoder_config(
#if CONFIG_AOM_QM
oxcf
->
using_qm
=
extra_cfg
->
enable_qm
;
oxcf
->
qm_minlevel
=
extra_cfg
->
qm_min
;
oxcf
->
qm_maxlevel
=
extra_cfg
->
qm_max
;
#endif
oxcf
->
under_shoot_pct
=
cfg
->
rc_undershoot_pct
;
...
...
@@ -649,6 +655,20 @@ static vpx_codec_err_t ctrl_set_enable_qm(vpx_codec_alg_priv_t *ctx,
extra_cfg
.
enable_qm
=
CAST
(
VP9E_SET_ENABLE_QM
,
args
);
return
update_extra_cfg
(
ctx
,
&
extra_cfg
);
}
static
vpx_codec_err_t
ctrl_set_qm_min
(
vpx_codec_alg_priv_t
*
ctx
,
va_list
args
)
{
struct
vp10_extracfg
extra_cfg
=
ctx
->
extra_cfg
;
extra_cfg
.
qm_min
=
CAST
(
VP9E_SET_QM_MIN
,
args
);
return
update_extra_cfg
(
ctx
,
&
extra_cfg
);
}
static
vpx_codec_err_t
ctrl_set_qm_max
(
vpx_codec_alg_priv_t
*
ctx
,
va_list
args
)
{
struct
vp10_extracfg
extra_cfg
=
ctx
->
extra_cfg
;
extra_cfg
.
qm_max
=
CAST
(
VP9E_SET_QM_MAX
,
args
);
return
update_extra_cfg
(
ctx
,
&
extra_cfg
);
}
#endif
static
vpx_codec_err_t
ctrl_set_frame_parallel_decoding_mode
(
...
...
@@ -1249,6 +1269,8 @@ static vpx_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
{
VP9E_SET_LOSSLESS
,
ctrl_set_lossless
},
#if CONFIG_AOM_QM
{
VP9E_SET_ENABLE_QM
,
ctrl_set_enable_qm
},
{
VP9E_SET_QM_MIN
,
ctrl_set_qm_min
},
{
VP9E_SET_QM_MAX
,
ctrl_set_qm_max
},
#endif
{
VP9E_SET_FRAME_PARALLEL_DECODING
,
ctrl_set_frame_parallel_decoding_mode
},
{
VP9E_SET_AQ_MODE
,
ctrl_set_aq_mode
},
...
...
vpx/vp8cx.h
View file @
c297fd00
...
...
@@ -324,6 +324,33 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_ENABLE_QM
,
/*!\brief Codec control function to set the min quant matrix flatness.
*
* AOM can operate with different ranges of quantisation matrices.
* As quantisation levels increase, the matrices get flatter. This
* control sets the minimum level of flatness from which the matrices
* are determined.
*
* By default, the encoder sets this minimum at half the available
* range.
*
* Supported in codecs: AOM
*/
VP9E_SET_QM_MIN
,
/*!\brief Codec control function to set the max quant matrix flatness.
*
* AOM can operate with different ranges of quantisation matrices.
* As quantisation levels increase, the matrices get flatter. This
* control sets the maximum level of flatness possible.
*
* By default, the encoder sets this maximum at the top of the
* available range.
*
* Supported in codecs: AOM
*/
VP9E_SET_QM_MAX
,
#endif
/*!\brief Codec control function to set number of tile columns.
...
...
@@ -763,6 +790,12 @@ VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int)
#if CONFIG_AOM_QM
VPX_CTRL_USE_TYPE
(
VP9E_SET_ENABLE_QM
,
unsigned
int
)
#define VPX_CTRL_VP9E_SET_ENABLE_QM
VPX_CTRL_USE_TYPE
(
VP9E_SET_QM_MIN
,
unsigned
int
)
#define VPX_CTRL_VP9E_SET_QM_MIN
VPX_CTRL_USE_TYPE
(
VP9E_SET_QM_MAX
,
unsigned
int
)
#define VPX_CTRL_VP9E_SET_QM_MAX
#endif
VPX_CTRL_USE_TYPE
(
VP9E_SET_FRAME_PARALLEL_DECODING
,
unsigned
int
)
...
...
vpxenc.c
View file @
c297fd00
...
...
@@ -369,6 +369,10 @@ static const arg_def_t lossless =
static
const
arg_def_t
enable_qm
=
ARG_DEF
(
NULL
,
"enable_qm"
,
1
,
"Enable quantisation matrices (0: false (default), 1: true)"
);
static
const
arg_def_t
qm_min
=
ARG_DEF
(
NULL
,
"qm_min"
,
1
,
"Min quant matrix flatness (0..15), default is 8"
);
static
const
arg_def_t
qm_max
=
ARG_DEF
(
NULL
,
"qm_max"
,
1
,
"Max quant matrix flatness (0..15), default is 16"
);
#endif
static
const
arg_def_t
frame_parallel_decoding
=
ARG_DEF
(
NULL
,
"frame-parallel"
,
1
,
"Enable frame parallel decodability features"
);
...
...
@@ -432,33 +436,35 @@ static const arg_def_t tune_content = ARG_DEF_ENUM(
#if CONFIG_VP10_ENCODER
/* clang-format off */
static
const
arg_def_t
*
vp10_args
[]
=
{
&
cpu_used_vp9
,
&
auto_altref
,
&
sharpness
,
&
static_thresh
,
&
tile_cols
,
&
tile_rows
,
&
arnr_maxframes
,
&
arnr_strength
,
&
arnr_type
,
&
tune_ssim
,
&
cq_level
,
&
max_intra_rate_pct
,
&
max_inter_rate_pct
,
&
gf_cbr_boost_pct
,
&
lossless
,
&
cpu_used_vp9
,
&
auto_altref
,
&
sharpness
,
&
static_thresh
,
&
tile_cols
,
&
tile_rows
,
&
arnr_maxframes
,
&
arnr_strength
,
&
arnr_type
,
&
tune_ssim
,
&
cq_level
,
&
max_intra_rate_pct
,
&
max_inter_rate_pct
,
&
gf_cbr_boost_pct
,
&
lossless
,
#if CONFIG_AOM_QM
&
enable_qm
,
&
enable_qm
,
&
qm_min
,
&
qm_max
,
#endif
&
frame_parallel_decoding
,
&
aq_mode
,
&
frame_periodic_boost
,
&
noise_sens
,
&
tune_content
,
&
input_color_space
,
&
min_gf_interval
,
&
max_gf_interval
,
NULL
&
frame_parallel_decoding
,
&
aq_mode
,
&
frame_periodic_boost
,
&
noise_sens
,
&
tune_content
,
&
input_color_space
,
&
min_gf_interval
,
&
max_gf_interval
,
NULL
};
static
const
int
vp10_arg_ctrl_map
[]
=
{
VP8E_SET_CPUUSED
,
VP8E_SET_ENABLEAUTOALTREF
,
VP8E_SET_SHARPNESS
,
VP8E_SET_STATIC_THRESHOLD
,
VP9E_SET_TILE_COLUMNS
,
VP9E_SET_TILE_ROWS
,
VP8E_SET_ARNR_MAXFRAMES
,
VP8E_SET_ARNR_STRENGTH
,
VP8E_SET_ARNR_TYPE
,
VP8E_SET_TUNING
,
VP8E_SET_CQ_LEVEL
,
VP8E_SET_MAX_INTRA_BITRATE_PCT
,
VP9E_SET_MAX_INTER_BITRATE_PCT
,
VP9E_SET_GF_CBR_BOOST_PCT
,
VP8E_SET_CPUUSED
,
VP8E_SET_ENABLEAUTOALTREF
,
VP8E_SET_SHARPNESS
,
VP8E_SET_STATIC_THRESHOLD
,
VP9E_SET_TILE_COLUMNS
,
VP9E_SET_TILE_ROWS
,
VP8E_SET_ARNR_MAXFRAMES
,
VP8E_SET_ARNR_STRENGTH
,
VP8E_SET_ARNR_TYPE
,
VP8E_SET_TUNING
,
VP8E_SET_CQ_LEVEL
,
VP8E_SET_MAX_INTRA_BITRATE_PCT
,
VP9E_SET_MAX_INTER_BITRATE_PCT
,
VP9E_SET_GF_CBR_BOOST_PCT
,
VP9E_SET_LOSSLESS
,
#if CONFIG_AOM_QM
VP9E_SET_ENABLE_QM
,
VP9E_SET_ENABLE_QM
,
VP9E_SET_QM_MIN
,
VP9E_SET_QM_MAX
,
#endif
VP9E_SET_FRAME_PARALLEL_DECODING
,
VP9E_SET_AQ_MODE
,
VP9E_SET_FRAME_PERIODIC_BOOST
,
VP9E_SET_NOISE_SENSITIVITY
,
VP9E_SET_TUNE_CONTENT
,
VP9E_SET_COLOR_SPACE
,
VP9E_SET_MIN_GF_INTERVAL
,
VP9E_SET_MAX_GF_INTERVAL
,
VP9E_SET_FRAME_PERIODIC_BOOST
,
VP9E_SET_NOISE_SENSITIVITY
,
VP9E_SET_TUNE_CONTENT
,
VP9E_SET_COLOR_SPACE
,
VP9E_SET_MIN_GF_INTERVAL
,
VP9E_SET_MAX_GF_INTERVAL
,
0
};
/* clang-format on */
...
...
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