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
d1a11fb9
Commit
d1a11fb9
authored
Mar 25, 2016
by
Adrian Grange
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change "vp8" to "aom"
Change-Id: I7fce5490afdc78ac62dafc4616b617d251487979
parent
0aba4a19
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
35 additions
and
1330 deletions
+35
-1330
aom/aom_codec.mk
aom/aom_codec.mk
+8
-8
aom/src/svc_encodeframe.c
aom/src/svc_encodeframe.c
+1
-1
aom/svc_context.h
aom/svc_context.h
+1
-1
aom/vp8.h
aom/vp8.h
+0
-154
aom/vp8cx.h
aom/vp8cx.h
+0
-844
aom/vp8dx.h
aom/vp8dx.h
+0
-165
aom_dsp/bitreader.h
aom_dsp/bitreader.h
+1
-1
aomdec.c
aomdec.c
+1
-1
aomenc.c
aomenc.c
+2
-2
av1/av1_cx_iface.c
av1/av1_cx_iface.c
+1
-1
av1/av1_dx_iface.c
av1/av1_dx_iface.c
+1
-1
av1/encoder/encoder.h
av1/encoder/encoder.h
+1
-1
examples/aom_temporal_svc_encoder.c
examples/aom_temporal_svc_encoder.c
+1
-1
examples/decode_to_md5.c
examples/decode_to_md5.c
+1
-1
examples/decode_with_drops.c
examples/decode_with_drops.c
+1
-1
examples/set_maps.c
examples/set_maps.c
+1
-1
libs.mk
libs.mk
+6
-6
test/codec_factory.h
test/codec_factory.h
+2
-2
test/decode_api_test.cc
test/decode_api_test.cc
+1
-1
test/encode_api_test.cc
test/encode_api_test.cc
+1
-1
test/encode_test_driver.h
test/encode_test_driver.h
+1
-1
test/svc_test.cc
test/svc_test.cc
+1
-1
test/vp8_multi_resolution_encoder.sh
test/vp8_multi_resolution_encoder.sh
+0
-75
test/vp8cx_set_ref.sh
test/vp8cx_set_ref.sh
+0
-57
tools_common.c
tools_common.c
+2
-2
No files found.
aom/aom_codec.mk
View file @
d1a11fb9
...
...
@@ -11,15 +11,15 @@
API_EXPORTS
+=
exports
API_SRCS-$(CONFIG_V10_ENCODER)
+=
vp8
.h
API_SRCS-$(CONFIG_AV1_ENCODER)
+=
vp8
cx.h
API_DOC_SRCS-$(CONFIG_AV1_ENCODER)
+=
vp8
.h
API_DOC_SRCS-$(CONFIG_AV1_ENCODER)
+=
vp8
cx.h
API_SRCS-$(CONFIG_V10_ENCODER)
+=
aom
.h
API_SRCS-$(CONFIG_AV1_ENCODER)
+=
aom
cx.h
API_DOC_SRCS-$(CONFIG_AV1_ENCODER)
+=
aom
.h
API_DOC_SRCS-$(CONFIG_AV1_ENCODER)
+=
aom
cx.h
API_SRCS-$(CONFIG_AV1_DECODER)
+=
vp8
.h
API_SRCS-$(CONFIG_AV1_DECODER)
+=
vp8
dx.h
API_DOC_SRCS-$(CONFIG_AV1_DECODER)
+=
vp8
.h
API_DOC_SRCS-$(CONFIG_AV1_DECODER)
+=
vp8
dx.h
API_SRCS-$(CONFIG_AV1_DECODER)
+=
aom
.h
API_SRCS-$(CONFIG_AV1_DECODER)
+=
aom
dx.h
API_DOC_SRCS-$(CONFIG_AV1_DECODER)
+=
aom
.h
API_DOC_SRCS-$(CONFIG_AV1_DECODER)
+=
aom
dx.h
API_DOC_SRCS-yes
+=
aom_codec.h
API_DOC_SRCS-yes
+=
aom_decoder.h
...
...
aom/src/svc_encodeframe.c
View file @
d1a11fb9
...
...
@@ -24,7 +24,7 @@
#define AOM_DISABLE_CTRL_TYPECHECKS 1
#include "./aom_config.h"
#include "aom/svc_context.h"
#include "aom/
vp8
cx.h"
#include "aom/
aom
cx.h"
#include "aom/aom_encoder.h"
#include "aom_mem/aom_mem.h"
#include "av1/common/onyxc_int.h"
...
...
aom/svc_context.h
View file @
d1a11fb9
...
...
@@ -17,7 +17,7 @@
#ifndef AOM_SVC_CONTEXT_H_
#define AOM_SVC_CONTEXT_H_
#include "./
vp8
cx.h"
#include "./
aom
cx.h"
#include "./aom_encoder.h"
#ifdef __cplusplus
...
...
aom/vp8.h
deleted
100644 → 0
View file @
0aba4a19
/*
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
/*!\defgroup vp8 AOM
* \ingroup codecs
* AOM is aom's newest video compression algorithm that uses motion
* compensated prediction, Discrete Cosine Transform (DCT) coding of the
* prediction error signal and context dependent entropy coding techniques
* based on arithmetic principles. It features:
* - YUV 4:2:0 image format
* - Macro-block based coding (16x16 luma plus two 8x8 chroma)
* - 1/4 (1/8) pixel accuracy motion compensated prediction
* - 4x4 DCT transform
* - 128 level linear quantizer
* - In loop deblocking filter
* - Context-based entropy coding
*
* @{
*/
/*!\file
* \brief Provides controls common to both the AOM encoder and decoder.
*/
#ifndef AOM_AOM_H_
#define AOM_AOM_H_
#include "./aom_codec.h"
#include "./aom_image.h"
#ifdef __cplusplus
extern
"C"
{
#endif
/*!\brief Control functions
*
* The set of macros define the control functions of AOM interface
*/
enum
vp8_com_control_id
{
AOM_SET_REFERENCE
=
1
,
/**< pass in an external frame into decoder to be used as reference
frame */
AOM_COPY_REFERENCE
=
2
,
/**< get a copy of reference frame from the decoder */
AOM_SET_POSTPROC
=
3
,
/**< set the decoder's post processing settings */
AOM_SET_DBG_COLOR_REF_FRAME
=
4
,
/**< set the reference frames to color for each macroblock */
AOM_SET_DBG_COLOR_MB_MODES
=
5
,
/**< set which macro block modes to color */
AOM_SET_DBG_COLOR_B_MODES
=
6
,
/**< set which blocks modes to color */
AOM_SET_DBG_DISPLAY_MV
=
7
,
/**< set which motion vector modes to draw */
/* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+)
* for its control ids. These should be migrated to something like the
* AOM_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
*/
VP9_GET_REFERENCE
=
128
,
/**< get a pointer to a reference frame */
AOM_COMMON_CTRL_ID_MAX
,
AOM_DECODER_CTRL_ID_START
=
256
};
/*!\brief post process flags
*
* The set of macros define AOM decoder post processing flags
*/
enum
vp8_postproc_level
{
AOM_NOFILTERING
=
0
,
AOM_DEBLOCK
=
1
<<
0
,
AOM_DEMACROBLOCK
=
1
<<
1
,
AOM_ADDNOISE
=
1
<<
2
,
AOM_DEBUG_TXT_FRAME_INFO
=
1
<<
3
,
/**< print frame information */
AOM_DEBUG_TXT_MBLK_MODES
=
1
<<
4
,
/**< print macro block modes over each macro block */
AOM_DEBUG_TXT_DC_DIFF
=
1
<<
5
,
/**< print dc diff for each macro block */
AOM_DEBUG_TXT_RATE_INFO
=
1
<<
6
,
/**< print video rate info (encoder only) */
AOM_MFQE
=
1
<<
10
};
/*!\brief post process flags
*
* This define a structure that describe the post processing settings. For
* the best objective measure (using the PSNR metric) set post_proc_flag
* to AOM_DEBLOCK and deblocking_level to 1.
*/
typedef
struct
vp8_postproc_cfg
{
int
post_proc_flag
;
/**< the types of post processing to be done, should be
combination of "vp8_postproc_level" */
int
deblocking_level
;
/**< the strength of deblocking, valid range [0, 16] */
int
noise_level
;
/**< the strength of additive noise, valid range [0, 16] */
}
vp8_postproc_cfg_t
;
/*!\brief reference frame type
*
* The set of macros define the type of AOM reference frames
*/
typedef
enum
aom_ref_frame_type
{
AOM_LAST_FRAME
=
1
,
AOM_GOLD_FRAME
=
2
,
AOM_ALTR_FRAME
=
4
}
aom_ref_frame_type_t
;
/*!\brief reference frame data struct
*
* Define the data struct to access vp8 reference frames.
*/
typedef
struct
aom_ref_frame
{
aom_ref_frame_type_t
frame_type
;
/**< which reference frame */
aom_image_t
img
;
/**< reference frame data in image format */
}
aom_ref_frame_t
;
/*!\brief VP9 specific reference frame data struct
*
* Define the data struct to access vp9 reference frames.
*/
typedef
struct
vp9_ref_frame
{
int
idx
;
/**< frame index to get (input) */
aom_image_t
img
;
/**< img structure to populate (output) */
}
vp9_ref_frame_t
;
/*!\cond */
/*!\brief vp8 decoder control function parameter type
*
* defines the data type for each of AOM decoder control function requires
*/
AOM_CTRL_USE_TYPE
(
AOM_SET_REFERENCE
,
aom_ref_frame_t
*
)
#define AOM_CTRL_AOM_SET_REFERENCE
AOM_CTRL_USE_TYPE
(
AOM_COPY_REFERENCE
,
aom_ref_frame_t
*
)
#define AOM_CTRL_AOM_COPY_REFERENCE
AOM_CTRL_USE_TYPE
(
AOM_SET_POSTPROC
,
vp8_postproc_cfg_t
*
)
#define AOM_CTRL_AOM_SET_POSTPROC
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_COLOR_REF_FRAME
,
int
)
#define AOM_CTRL_AOM_SET_DBG_COLOR_REF_FRAME
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_COLOR_MB_MODES
,
int
)
#define AOM_CTRL_AOM_SET_DBG_COLOR_MB_MODES
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_COLOR_B_MODES
,
int
)
#define AOM_CTRL_AOM_SET_DBG_COLOR_B_MODES
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_DISPLAY_MV
,
int
)
#define AOM_CTRL_AOM_SET_DBG_DISPLAY_MV
AOM_CTRL_USE_TYPE
(
VP9_GET_REFERENCE
,
vp9_ref_frame_t
*
)
#define AOM_CTRL_VP9_GET_REFERENCE
/*!\endcond */
/*! @} - end defgroup vp8 */
#ifdef __cplusplus
}
// extern "C"
#endif
#endif // AOM_AOM_H_
aom/vp8cx.h
deleted
100644 → 0
View file @
0aba4a19
/*
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#ifndef AOM_AOMCX_H_
#define AOM_AOMCX_H_
/*!\defgroup vp8_encoder WebM AOM/VP9 Encoder
* \ingroup vp8
*
* @{
*/
#include "./vp8.h"
#include "./aom_encoder.h"
/*!\file
* \brief Provides definitions for using AOM or VP9 encoder algorithm within the
* aom Codec Interface.
*/
#ifdef __cplusplus
extern
"C"
{
#endif
/*!\name Algorithm interface for AV1
*
* This interface provides the capability to encode raw AV1 streams.
* @{
*/
extern
aom_codec_iface_t
aom_codec_av1_cx_algo
;
extern
aom_codec_iface_t
*
aom_codec_av1_cx
(
void
);
/*!@} - end algorithm interface member group*/
/*
* Algorithm Flags
*/
/*!\brief Don't reference the last frame
*
* When this flag is set, the encoder will not use the last frame as a
* predictor. When not set, the encoder will choose whether to use the
* last frame or not automatically.
*/
#define AOM_EFLAG_NO_REF_LAST (1 << 16)
/*!\brief Don't reference the golden frame
*
* When this flag is set, the encoder will not use the golden frame as a
* predictor. When not set, the encoder will choose whether to use the
* golden frame or not automatically.
*/
#define AOM_EFLAG_NO_REF_GF (1 << 17)
/*!\brief Don't reference the alternate reference frame
*
* When this flag is set, the encoder will not use the alt ref frame as a
* predictor. When not set, the encoder will choose whether to use the
* alt ref frame or not automatically.
*/
#define AOM_EFLAG_NO_REF_ARF (1 << 21)
/*!\brief Don't update the last frame
*
* When this flag is set, the encoder will not update the last frame with
* the contents of the current frame.
*/
#define AOM_EFLAG_NO_UPD_LAST (1 << 18)
/*!\brief Don't update the golden frame
*
* When this flag is set, the encoder will not update the golden frame with
* the contents of the current frame.
*/
#define AOM_EFLAG_NO_UPD_GF (1 << 22)
/*!\brief Don't update the alternate reference frame
*
* When this flag is set, the encoder will not update the alt ref frame with
* the contents of the current frame.
*/
#define AOM_EFLAG_NO_UPD_ARF (1 << 23)
/*!\brief Force golden frame update
*
* When this flag is set, the encoder copy the contents of the current frame
* to the golden frame buffer.
*/
#define AOM_EFLAG_FORCE_GF (1 << 19)
/*!\brief Force alternate reference frame update
*
* When this flag is set, the encoder copy the contents of the current frame
* to the alternate reference frame buffer.
*/
#define AOM_EFLAG_FORCE_ARF (1 << 24)
/*!\brief Disable entropy update
*
* When this flag is set, the encoder will not update its internal entropy
* model based on the entropy of this frame.
*/
#define AOM_EFLAG_NO_UPD_ENTROPY (1 << 20)
/*!\brief VPx encoder control functions
*
* This set of macros define the control functions available for VPx
* encoder interface.
*
* \sa #aom_codec_control
*/
enum
vp8e_enc_control_id
{
/*!\brief Codec control function to pass an ROI map to encoder.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_ROI_MAP
=
8
,
/*!\brief Codec control function to pass an Active map to encoder.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_ACTIVEMAP
,
/*!\brief Codec control function to set encoder scaling mode.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_SCALEMODE
=
11
,
/*!\brief Codec control function to set encoder internal speed settings.
*
* Changes in this value influences, among others, the encoder's selection
* of motion estimation methods. Values greater than 0 will increase encoder
* speed at the expense of quality.
*
* \note Valid range for AOM: -16..16
* \note Valid range for VP9: -8..8
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_CPUUSED
=
13
,
/*!\brief Codec control function to enable automatic set and use alf frames.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_ENABLEAUTOALTREF
,
/*!\brief control function to set noise sensitivity
*
* 0: off, 1: OnYOnly, 2: OnYUV,
* 3: OnYUVAggressive, 4: Adaptive
*
* Supported in codecs: AOM
*/
AOME_SET_NOISE_SENSITIVITY
,
/*!\brief Codec control function to set sharpness.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_SHARPNESS
,
/*!\brief Codec control function to set the threshold for MBs treated static.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_STATIC_THRESHOLD
,
/*!\brief Codec control function to set the number of token partitions.
*
* Supported in codecs: AOM
*/
AOME_SET_TOKEN_PARTITIONS
,
/*!\brief Codec control function to get last quantizer chosen by the encoder.
*
* Return value uses internal quantizer scale defined by the codec.
*
* Supported in codecs: AOM, VP9
*/
AOME_GET_LAST_QUANTIZER
,
/*!\brief Codec control function to get last quantizer chosen by the encoder.
*
* Return value uses the 0..63 scale as used by the rc_*_quantizer config
* parameters.
*
* Supported in codecs: AOM, VP9
*/
AOME_GET_LAST_QUANTIZER_64
,
/*!\brief Codec control function to set the max no of frames to create arf.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_ARNR_MAXFRAMES
,
/*!\brief Codec control function to set the filter strength for the arf.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_ARNR_STRENGTH
,
/*!\deprecated control function to set the filter type to use for the arf. */
AOME_SET_ARNR_TYPE
,
/*!\brief Codec control function to set visual tuning.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_TUNING
,
/*!\brief Codec control function to set constrained quality level.
*
* \attention For this value to be used aom_codec_enc_cfg_t::g_usage must be
* set to #AOM_CQ.
* \note Valid range: 0..63
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_CQ_LEVEL
,
/*!\brief Codec control function to set Max data rate for Intra frames.
*
* This value controls additional clamping on the maximum size of a
* keyframe. It is expressed as a percentage of the average
* per-frame bitrate, with the special (and default) value 0 meaning
* unlimited, or no additional clamping beyond the codec's built-in
* algorithm.
*
* For example, to allocate no more than 4.5 frames worth of bitrate
* to a keyframe, set this to 450.
*
* Supported in codecs: AOM, VP9
*/
AOME_SET_MAX_INTRA_BITRATE_PCT
,
/*!\brief Codec control function to set reference and update frame flags.
*
* Supported in codecs: AOM
*/
AOME_SET_FRAME_FLAGS
,
/*!\brief Codec control function to set max data rate for Inter frames.
*
* This value controls additional clamping on the maximum size of an
* inter frame. It is expressed as a percentage of the average
* per-frame bitrate, with the special (and default) value 0 meaning
* unlimited, or no additional clamping beyond the codec's built-in
* algorithm.
*
* For example, to allow no more than 4.5 frames worth of bitrate
* to an inter frame, set this to 450.
*
* Supported in codecs: VP9
*/
VP9E_SET_MAX_INTER_BITRATE_PCT
,
/*!\brief Boost percentage for Golden Frame in CBR mode.
*
* This value controls the amount of boost given to Golden Frame in
* CBR mode. It is expressed as a percentage of the average
* per-frame bitrate, with the special (and default) value 0 meaning
* the feature is off, i.e., no golden frame boost in CBR mode and
* average bitrate target is used.
*
* For example, to allow 100% more bits, i.e, 2X, in a golden frame
* than average frame, set this to 100.
*
* Supported in codecs: VP9
*/
VP9E_SET_GF_CBR_BOOST_PCT
,
/*!\brief Codec control function to set the temporal layer id.
*
* For temporal scalability: this control allows the application to set the
* layer id for each frame to be encoded. Note that this control must be set
* for every frame prior to encoding. The usage of this control function
* supersedes the internal temporal pattern counter, which is now deprecated.
*
* Supported in codecs: AOM
*/
AOME_SET_TEMPORAL_LAYER_ID
,
/*!\brief Codec control function to set encoder screen content mode.
*
* 0: off, 1: On, 2: On with more aggressive rate control.
*
* Supported in codecs: AOM
*/
AOME_SET_SCREEN_CONTENT_MODE
,
/*!\brief Codec control function to set lossless encoding mode.
*
* VP9 can operate in lossless encoding mode, in which the bitstream
* produced will be able to decode and reconstruct a perfect copy of
* input source. This control function provides a mean to switch encoder
* into lossless coding mode(1) or normal coding mode(0) that may be lossy.
* 0 = lossy coding mode
* 1 = lossless coding mode
*
* By default, encoder operates in normal coding mode (maybe lossy).
*
* Supported in codecs: VP9
*/
VP9E_SET_LOSSLESS
,
#if CONFIG_AOM_QM
/*!\brief Codec control function to encode with quantisation matrices.
*
* AOM can operate with default quantisation matrices dependent on
* quantisation level and block type.
* 0 = do not use quantisation matrices
* 1 = use quantisation matrices
*
* By default, the encoder operates without quantisation matrices.
*
* Supported in codecs: AOM
*/
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.
*
* In encoding and decoding, VP9 allows an input image frame be partitioned
* into separated vertical tile columns, which can be encoded or decoded
* independently. This enables easy implementation of parallel encoding and
* decoding. This control requests the encoder to use column tiles in
* encoding an input frame, with number of tile columns (in Log2 unit) as
* the parameter:
* 0 = 1 tile column
* 1 = 2 tile columns
* 2 = 4 tile columns
* .....
* n = 2**n tile columns
* The requested tile columns will be capped by encoder based on image size
* limitation (The minimum width of a tile column is 256 pixel, the maximum
* is 4096).
*
* By default, the value is 0, i.e. one single column tile for entire image.
*
* Supported in codecs: VP9
*/
VP9E_SET_TILE_COLUMNS
,
/*!\brief Codec control function to set number of tile rows.
*
* In encoding and decoding, VP9 allows an input image frame be partitioned
* into separated horizontal tile rows. Tile rows are encoded or decoded
* sequentially. Even though encoding/decoding of later tile rows depends on
* earlier ones, this allows the encoder to output data packets for tile rows
* prior to completely processing all tile rows in a frame, thereby reducing
* the latency in processing between input and output. The parameter
* for this control describes the number of tile rows, which has a valid
* range [0, 2]:
* 0 = 1 tile row
* 1 = 2 tile rows
* 2 = 4 tile rows
*
* By default, the value is 0, i.e. one single row tile for entire image.
*
* Supported in codecs: VP9
*/
VP9E_SET_TILE_ROWS
,
/*!\brief Codec control function to enable frame parallel decoding feature.
*
* VP9 has a bitstream feature to reduce decoding dependency between frames
* by turning off backward update of probability context used in encoding
* and decoding. This allows staged parallel processing of more than one
* video frames in the decoder. This control function provides a mean to
* turn this feature on or off for bitstreams produced by encoder.
*
* By default, this feature is off.
*
* Supported in codecs: VP9
*/
VP9E_SET_FRAME_PARALLEL_DECODING
,
/*!\brief Codec control function to set adaptive quantization mode.
*
* VP9 has a segment based feature that allows encoder to adaptively change
* quantization parameter for each segment within a frame to improve the
* subjective quality. This control makes encoder operate in one of the
* several AQ_modes supported.
*
* By default, encoder operates with AQ_Mode 0(adaptive quantization off).
*
* Supported in codecs: VP9
*/
VP9E_SET_AQ_MODE
,
/*!\brief Codec control function to enable/disable periodic Q boost.
*
* One VP9 encoder speed feature is to enable quality boost by lowering
* frame level Q periodically. This control function provides a mean to
* turn on/off this feature.
* 0 = off
* 1 = on
*
* By default, the encoder is allowed to use this feature for appropriate
* encoding modes.
*
* Supported in codecs: VP9
*/
VP9E_SET_FRAME_PERIODIC_BOOST
,
/*!\brief Codec control function to set noise sensitivity.
*
* 0: off, 1: On(YOnly)
*
* Supported in codecs: VP9
*/
VP9E_SET_NOISE_SENSITIVITY
,
/*!\brief Codec control function to turn on/off SVC in encoder.