| Index: source/libvpx/vpx/vp8cx.h
|
| ===================================================================
|
| --- source/libvpx/vpx/vp8cx.h (revision 172621)
|
| +++ source/libvpx/vpx/vp8cx.h (working copy)
|
| @@ -31,7 +31,14 @@
|
| * @{
|
| */
|
| extern vpx_codec_iface_t vpx_codec_vp8_cx_algo;
|
| -extern vpx_codec_iface_t* vpx_codec_vp8_cx(void);
|
| +extern vpx_codec_iface_t *vpx_codec_vp8_cx(void);
|
| +
|
| +/* TODO(jkoleszar): These move to VP9 in a later patch set. */
|
| +extern vpx_codec_iface_t vpx_codec_vp9_cx_algo;
|
| +extern vpx_codec_iface_t *vpx_codec_vp9_cx(void);
|
| +extern vpx_codec_iface_t vpx_codec_vp9x_cx_algo;
|
| +extern vpx_codec_iface_t *vpx_codec_vp9x_cx(void);
|
| +
|
| /*!@} - end algorithm interface member group*/
|
|
|
|
|
| @@ -121,75 +128,77 @@
|
| *
|
| * \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
|
| - *
|
| - * 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
|
| - */
|
| - VP8E_SET_CPUUSED = 13,
|
| - VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */
|
| - VP8E_SET_NOISE_SENSITIVITY, /**< control function to 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
|
| +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
|
| + *
|
| + * 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
|
| + */
|
| + VP8E_SET_CPUUSED = 13,
|
| + VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */
|
| + VP8E_SET_NOISE_SENSITIVITY, /**< control function to 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
|
| + 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 */
|
| - VP8E_SET_ARNR_TYPE , /**< control function to set the type of filter to use for the arf*/
|
| - VP8E_SET_TUNING, /**< control function to set visual tuning */
|
| - /*!\brief 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
|
| - */
|
| - VP8E_SET_CQ_LEVEL,
|
| + 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 */
|
| + VP8E_SET_ARNR_TYPE, /**< control function to set the type of filter to use for the arf*/
|
| + VP8E_SET_TUNING, /**< control function to set visual tuning */
|
| + /*!\brief 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
|
| + */
|
| + VP8E_SET_CQ_LEVEL,
|
|
|
| - /*!\brief 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.
|
| - *
|
| - */
|
| - VP8E_SET_MAX_INTRA_BITRATE_PCT
|
| + /*!\brief 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.
|
| + *
|
| + */
|
| + VP8E_SET_MAX_INTRA_BITRATE_PCT,
|
| +
|
| +
|
| + /* TODO(jkoleszar): Move to vp9cx.h */
|
| + VP9E_SET_LOSSLESS
|
| };
|
|
|
| /*!\brief vpx 1-D scaling mode
|
| *
|
| * This set of constants define 1-D vpx scaling modes
|
| */
|
| -typedef enum vpx_scaling_mode_1d
|
| -{
|
| - VP8E_NORMAL = 0,
|
| - VP8E_FOURFIVE = 1,
|
| - VP8E_THREEFIVE = 2,
|
| - VP8E_ONETWO = 3
|
| +typedef enum vpx_scaling_mode_1d {
|
| + VP8E_NORMAL = 0,
|
| + VP8E_FOURFIVE = 1,
|
| + VP8E_THREEFIVE = 2,
|
| + VP8E_ONETWO = 3
|
| } VPX_SCALING_MODE;
|
|
|
|
|
| @@ -199,14 +208,13 @@
|
| *
|
| */
|
|
|
| -typedef struct vpx_roi_map
|
| -{
|
| - unsigned char *roi_map; /**< specify an id between 0 and 3 for each 16x16 region within a frame */
|
| - unsigned int rows; /**< number of rows */
|
| - unsigned int cols; /**< number of cols */
|
| - int delta_q[4]; /**< quantizer delta [-63, 63] off baseline for regions with id between 0 and 3*/
|
| - int delta_lf[4]; /**< loop filter strength delta [-63, 63] for regions with id between 0 and 3 */
|
| - unsigned int static_threshold[4];/**< threshold for region to be treated as static */
|
| +typedef struct vpx_roi_map {
|
| + unsigned char *roi_map; /**< specify an id between 0 and 3 for each 16x16 region within a frame */
|
| + unsigned int rows; /**< number of rows */
|
| + unsigned int cols; /**< number of cols */
|
| + int delta_q[4]; /**< quantizer delta [-63, 63] off baseline for regions with id between 0 and 3*/
|
| + int delta_lf[4]; /**< loop filter strength delta [-63, 63] for regions with id between 0 and 3 */
|
| + unsigned int static_threshold[4];/**< threshold for region to be treated as static */
|
| } vpx_roi_map_t;
|
|
|
| /*!\brief vpx active region map
|
| @@ -216,11 +224,10 @@
|
| */
|
|
|
|
|
| -typedef struct vpx_active_map
|
| -{
|
| - unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */
|
| - unsigned int rows; /**< number of rows */
|
| - unsigned int cols; /**< number of cols */
|
| +typedef struct vpx_active_map {
|
| + unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */
|
| + unsigned int rows; /**< number of rows */
|
| + unsigned int cols; /**< number of cols */
|
| } vpx_active_map_t;
|
|
|
| /*!\brief vpx image scaling mode
|
| @@ -228,10 +235,9 @@
|
| * This defines the data structure for image scaling mode
|
| *
|
| */
|
| -typedef struct vpx_scaling_mode
|
| -{
|
| - VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */
|
| - VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */
|
| +typedef struct vpx_scaling_mode {
|
| + VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */
|
| + VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */
|
| } vpx_scaling_mode_t;
|
|
|
| /*!\brief VP8 token partition mode
|
| @@ -241,12 +247,11 @@
|
| *
|
| */
|
|
|
| -typedef enum
|
| -{
|
| - VP8_ONE_TOKENPARTITION = 0,
|
| - VP8_TWO_TOKENPARTITION = 1,
|
| - VP8_FOUR_TOKENPARTITION = 2,
|
| - VP8_EIGHT_TOKENPARTITION = 3
|
| +typedef enum {
|
| + VP8_ONE_TOKENPARTITION = 0,
|
| + VP8_TWO_TOKENPARTITION = 1,
|
| + VP8_FOUR_TOKENPARTITION = 2,
|
| + VP8_EIGHT_TOKENPARTITION = 3
|
| } vp8e_token_partitions;
|
|
|
|
|
| @@ -255,10 +260,9 @@
|
| * Changes the encoder to tune for certain types of input material.
|
| *
|
| */
|
| -typedef enum
|
| -{
|
| - VP8_TUNE_PSNR,
|
| - VP8_TUNE_SSIM
|
| +typedef enum {
|
| + VP8_TUNE_PSNR,
|
| + VP8_TUNE_SSIM
|
| } vp8e_tuning;
|
|
|
|
|
| @@ -289,16 +293,17 @@
|
| VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */
|
|
|
| VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int)
|
| -VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int)
|
| -VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int)
|
| +VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int)
|
| +VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE, unsigned int)
|
| VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */
|
| -VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL , unsigned int)
|
| +VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int)
|
|
|
| VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
|
| VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)
|
|
|
| VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
|
|
|
| +VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int)
|
|
|
| /*! @} - end defgroup vp8_encoder */
|
| #include "vpx_codec_impl_bottom.h"
|
|
|