diff options
author | Yaowu Xu <yaowu@google.com> | 2015-03-13 09:42:57 -0700 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2015-03-13 11:56:35 -0700 |
commit | 268f10669a700bb7b7ece3ae06490bd9e99b8a6f (patch) | |
tree | 6e5cea7670499928e41a58bedd8af1281a05d3ec /vpx/vp8cx.h | |
parent | b6749aa3a70d12796dbcbc14682050633299392b (diff) | |
download | libvpx-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.h | 196 |
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 |