summaryrefslogtreecommitdiff
path: root/vpx/vp8cx.h
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2015-03-13 09:42:57 -0700
committerYaowu Xu <yaowu@google.com>2015-03-13 11:56:35 -0700
commit268f10669a700bb7b7ece3ae06490bd9e99b8a6f (patch)
tree6e5cea7670499928e41a58bedd8af1281a05d3ec /vpx/vp8cx.h
parentb6749aa3a70d12796dbcbc14682050633299392b (diff)
downloadlibvpx-268f10669a700bb7b7ece3ae06490bd9e99b8a6f.tar
libvpx-268f10669a700bb7b7ece3ae06490bd9e99b8a6f.tar.gz
libvpx-268f10669a700bb7b7ece3ae06490bd9e99b8a6f.tar.bz2
libvpx-268f10669a700bb7b7ece3ae06490bd9e99b8a6f.zip
Provide information on codec controls
The commit updates the comments in vp8cx.h to make it clear which codec support each of codec control functions. Change-Id: Ibf876e289d4325bbb61ce19311da60d384624c2f
Diffstat (limited to 'vpx/vp8cx.h')
-rw-r--r--vpx/vp8cx.h196
1 files changed, 145 insertions, 51 deletions
diff --git a/vpx/vp8cx.h b/vpx/vp8cx.h
index 6e984d788..5f063846c 100644
--- a/vpx/vp8cx.h
+++ b/vpx/vp8cx.h
@@ -132,58 +132,137 @@ extern vpx_codec_iface_t *vpx_codec_vp9_cx(void);
* \sa #vpx_codec_control
*/
enum vp8e_enc_control_id {
- VP8E_UPD_ENTROPY = 5, /**< control function to set mode of entropy update in encoder */
- VP8E_UPD_REFERENCE, /**< control function to set reference update mode in encoder */
- VP8E_USE_REFERENCE, /**< control function to set which reference frame encoder can use */
- VP8E_SET_ROI_MAP, /**< control function to pass an ROI map to encoder */
- VP8E_SET_ACTIVEMAP, /**< control function to pass an Active map to encoder */
- VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scaling mode */
- /*!\brief control function to set vp8 encoder cpuused
+ /*!\brief Codec control function to set mode of entropy update in encoder.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_UPD_ENTROPY = 5,
+
+ /*!\brief Codec control function to set reference update mode in encoder.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_UPD_REFERENCE,
+
+ /*!\brief Codec control function to set which reference frame encoder can use.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_USE_REFERENCE,
+
+ /*!\brief Codec control function to pass an ROI map to encoder.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_ROI_MAP,
+
+ /*!\brief Codec control function to pass an Active map to encoder.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_ACTIVEMAP,
+
+ /*!\brief Codec control function to set encoder scaling mode.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_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.
- * The full set of adjustments can be found in
- * onyx_if.c:vp8_set_speed_features().
- * \todo List highlights of the changes at various levels.
*
- * \note Valid range: -16..16
+ * \note Valid range for VP8: -16..16
+ * \note Valid range for VP9: -8..8
+ *
+ * Supported in codecs: VP8, VP9
*/
VP8E_SET_CPUUSED = 13,
- VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */
+
+ /*!\brief Codec control function to enable automatic set and use alf frames.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_ENABLEAUTOALTREF,
+
/*!\brief control function to set noise sensitivity
*
* 0: off, 1: OnYOnly, 2: OnYUV,
* 3: OnYUVAggressive, 4: Adaptive
+ *
+ * Supported in codecs: VP8
*/
VP8E_SET_NOISE_SENSITIVITY,
- VP8E_SET_SHARPNESS, /**< control function to set sharpness */
- VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold for macroblocks treated static */
- VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of token partitions */
- VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the
- encoder for the last frame using the internal
- scale */
- VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the
- encoder for the last frame, using the 0..63
- scale as used by the rc_*_quantizer config
- parameters */
- VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number of frames blurred creating arf*/
- VP8E_SET_ARNR_STRENGTH, //!< control function to set the filter
- //!< strength for the arf
-
- /*!\deprecated control function to set the filter type to use for the arf */
+
+ /*!\brief Codec control function to set sharpness.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_SHARPNESS,
+
+ /*!\brief Codec control function to set the threshold for MBs treated static.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_STATIC_THRESHOLD,
+
+ /*!\brief Codec control function to set the number of token partitions.
+ *
+ * Supported in codecs: VP8
+ */
+ VP8E_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: VP8, VP9
+ */
+ VP8E_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: VP8, VP9
+ */
+ VP8E_GET_LAST_QUANTIZER_64,
+
+ /*!\brief Codec control function to set the max no of frames to create arf.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_ARNR_MAXFRAMES,
+
+ /*!\brief Codec control function to set the filter strength for the arf.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_ARNR_STRENGTH,
+
+ /*!\deprecated control function to set the filter type to use for the arf. */
VP8E_SET_ARNR_TYPE,
- VP8E_SET_TUNING, /**< control function to set visual tuning */
- /*!\brief control function to set constrained quality level
+ /*!\brief Codec control function to set visual tuning.
+ *
+ * Supported in codecs: VP8, VP9
+ */
+ VP8E_SET_TUNING,
+
+ /*!\brief Codec control function to set constrained quality level.
*
* \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be
* set to #VPX_CQ.
* \note Valid range: 0..63
+ *
+ * Supported in codecs: VP8, VP9
*/
VP8E_SET_CQ_LEVEL,
- /*!\brief Max data rate for Intra frames
+ /*!\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
@@ -194,11 +273,17 @@ enum vp8e_enc_control_id {
* For example, to allocate no more than 4.5 frames worth of bitrate
* to a keyframe, set this to 450.
*
+ * Supported in codecs: VP8, VP9
*/
VP8E_SET_MAX_INTRA_BITRATE_PCT,
- VP8E_SET_FRAME_FLAGS, /**< control function to set reference and update frame flags */
- /*!\brief Max data rate for Inter frames
+ /*!\brief Codec control function to set reference and update frame flags.
+ *
+ * Supported in codecs: VP8
+ */
+ VP8E_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
@@ -209,10 +294,11 @@ enum vp8e_enc_control_id {
* 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
*/
- VP8E_SET_MAX_INTER_BITRATE_PCT,
+ VP9E_SET_MAX_INTER_BITRATE_PCT,
- /*!\brief Boost percentage for Golden Frame in CBR mode
+ /*!\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
@@ -227,18 +313,24 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_GF_CBR_BOOST_PCT,
- /*!\brief Codec control function to set the temporal layer id
+ /*!\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: VP8
*/
VP8E_SET_TEMPORAL_LAYER_ID,
- VP8E_SET_SCREEN_CONTENT_MODE, /**<control function to set encoder screen content mode */
+ /*!\brief Codec control function to set encoder screen content mode.
+ *
+ * Supported in codecs: VP8
+ */
+ VP8E_SET_SCREEN_CONTENT_MODE,
- /*!\brief Codec control function to set lossless encoding 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
@@ -253,7 +345,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_LOSSLESS,
- /*!\brief Codec control function to set number of tile columns
+ /*!\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
@@ -276,7 +368,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_TILE_COLUMNS,
- /*!\brief Codec control function to set number of tile rows
+ /*!\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
@@ -296,7 +388,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_TILE_ROWS,
- /*!\brief Codec control function to enable frame parallel decoding feature
+ /*!\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
@@ -310,7 +402,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_FRAME_PARALLEL_DECODING,
- /*!\brief Codec control function to set adaptive quantization mode
+ /*!\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
@@ -323,7 +415,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_AQ_MODE,
- /*!\brief Codec control function to enable/disable periodic Q boost
+ /*!\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
@@ -338,15 +430,15 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_FRAME_PERIODIC_BOOST,
- /*!\brief control function to set noise sensitivity
+ /*!\brief Codec control function to set noise sensitivity.
*
- * 0: off, 1: OnYOnly
+ * 0: off, 1: On(YOnly)
*
* Supported in codecs: VP9
*/
VP9E_SET_NOISE_SENSITIVITY,
- /*!\brief control function to turn on/off SVC in encoder.
+ /*!\brief Codec control function to turn on/off SVC in encoder.
* \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not
* support SVC in its current encoding mode
* 0: off, 1: on
@@ -355,7 +447,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_SVC,
- /*!\brief control function to set parameters for SVC.
+ /*!\brief Codec control function to set parameters for SVC.
* \note Parameters contain min_q, max_q, scaling factor for each of the
* SVC layers.
*
@@ -363,7 +455,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_SVC_PARAMETERS,
- /*!\brief control function to set svc layer for spatial and temporal.
+ /*!\brief Codec control function to set svc layer for spatial and temporal.
* \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial
* layer and 0..#vpx_codec_enc_cfg::ts_number_layers for
* temporal layer.
@@ -372,7 +464,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_SVC_LAYER_ID,
- /*!\brief control function to set content type.
+ /*!\brief Codec control function to set content type.
* \note Valid parameter range:
* VP9E_CONTENT_DEFAULT = Regular video content (Default)
* VP9E_CONTENT_SCREEN = Screen capture content
@@ -381,7 +473,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_TUNE_CONTENT,
- /*!\brief control function to get svc layer ID.
+ /*!\brief Codec control function to get svc layer ID.
* \note The layer ID returned is for the data packet from the registered
* callback function.
*
@@ -389,13 +481,15 @@ enum vp8e_enc_control_id {
*/
VP9E_GET_SVC_LAYER_ID,
- /*!\brief control function to register callback for getting per layer packet.
+ /*!\brief Codec control function to register callback to get per layer packet.
* \note Parameter for this control function is a structure with a callback
* function and a pointer to private data used by the callback.
+ *
+ * Supported in codecs: VP9
*/
VP9E_REGISTER_CX_CALLBACK,
- /*!\brief control function to set color space info.
+ /*!\brief Codec control function to set color space info.
* \note Valid ranges: 0..7, default is "UNKNOWN".
* 0 = UNKNOWN,
* 1 = BT_601