WebM VP8 Codec SDK: WebM VP8 Encoder

WebM VP8 Codec SDK

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

Files | Data Structures | Macros | Typedefs | Enumerations
WebM VP8 Encoder
Supported Codecs » VP8

## Files
file | vp8cx.h
| Provides definitions for using the VP8 encoder algorithm within the vpx Codec Interface.

## Data Structures
struct | vpx_roi_map
| vpx region of interest map More...
struct | vpx_active_map
| vpx active region map More...
struct | vpx_scaling_mode
| vpx image scaling mode More...
struct | vpx_svc_parameters
| vp9 svc parameters More...

## Macros
#define | VP8_EFLAG_NO_REF_LAST (1<<16)
| Don't reference the last frame. More...
#define | VP8_EFLAG_NO_REF_GF (1<<17)
| Don't reference the golden frame. More...
#define | VP8_EFLAG_NO_REF_ARF (1<<21)
| Don't reference the alternate reference frame. More...
#define | VP8_EFLAG_NO_UPD_LAST (1<<18)
| Don't update the last frame. More...
#define | VP8_EFLAG_NO_UPD_GF (1<<22)
| Don't update the golden frame. More...
#define | VP8_EFLAG_NO_UPD_ARF (1<<23)
| Don't update the alternate reference frame. More...
#define | VP8_EFLAG_FORCE_GF (1<<19)
| Force golden frame update. More...
#define | VP8_EFLAG_FORCE_ARF (1<<24)
| Force alternate reference frame update. More...
#define | VP8_EFLAG_NO_UPD_ENTROPY (1<<20)
| Disable entropy update. More...

## Typedefs
typedef enum vpx_scaling_mode_1d | VPX_SCALING_MODE
| vpx 1-D scaling mode More...
typedef struct vpx_roi_map | vpx_roi_map_t
| vpx region of interest map More...
typedef struct vpx_active_map | vpx_active_map_t
| vpx active region map More...
typedef struct vpx_scaling_mode | vpx_scaling_mode_t
| vpx image scaling mode More...
typedef struct vpx_svc_parameters | vpx_svc_parameters_t
| vp9 svc parameters More...

## Enumerations
enum | vp8e_enc_control_id { VP8E_UPD_ENTROPY = 5, VP8E_UPD_REFERENCE, VP8E_USE_REFERENCE, VP8E_SET_ROI_MAP, VP8E_SET_ACTIVEMAP, VP8E_SET_SCALEMODE = 11, VP8E_SET_CPUUSED = 13, VP8E_SET_ENABLEAUTOALTREF, VP8E_SET_NOISE_SENSITIVITY, VP8E_SET_SHARPNESS, VP8E_SET_STATIC_THRESHOLD, VP8E_SET_TOKEN_PARTITIONS, VP8E_GET_LAST_QUANTIZER, VP8E_GET_LAST_QUANTIZER_64, 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_LOSSLESS, VP9E_SET_TILE_COLUMNS, VP9E_SET_TILE_ROWS, VP9E_SET_FRAME_PARALLEL_DECODING, VP9E_SET_AQ_MODE, VP9E_SET_SVC, VP9E_SET_SVC_PARAMETERS }
| VP8 encoder control functions. More...
enum | vpx_scaling_mode_1d { VP8E_NORMAL = 0, VP8E_FOURFIVE = 1, VP8E_THREEFIVE = 2, VP8E_ONETWO = 3 }
| vpx 1-D scaling mode More...
enum | vp8e_token_partitions { VP8_ONE_TOKENPARTITION = 0, VP8_TWO_TOKENPARTITION = 1, VP8_FOUR_TOKENPARTITION = 2, VP8_EIGHT_TOKENPARTITION = 3 }
| VP8 token partition mode. More...
enum | vp8e_tuning { VP8_TUNE_PSNR, VP8_TUNE_SSIM }
| VP8 model tuning parameters. More...

## Algorithm interface for VP8
This interface provides the capability to encode raw VP8 streams, as would be found in AVI files.
vpx_codec_iface_t | vpx_codec_vp8_cx_algo
vpx_codec_iface_t | vpx_codec_vp9_cx_algo
vpx_codec_iface_t | vpx_codec_vp9x_cx_algo
vpx_codec_iface_t * | vpx_codec_vp8_cx (void)
vpx_codec_iface_t * | vpx_codec_vp9_cx (void)
vpx_codec_iface_t * | vpx_codec_vp9x_cx (void)

## Detailed Description

## Macro Definition Documentation

#define VP8_EFLAG_NO_REF_LAST (1<<16)

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 VP8_EFLAG_NO_REF_GF (1<<17)

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 VP8_EFLAG_NO_REF_ARF (1<<21)

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 VP8_EFLAG_NO_UPD_LAST (1<<18)

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 VP8_EFLAG_NO_UPD_GF (1<<22)

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 VP8_EFLAG_NO_UPD_ARF (1<<23)

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 VP8_EFLAG_FORCE_GF (1<<19)

Force golden frame update.

When this flag is set, the encoder copy the contents of the current frame to the golden frame buffer.

#define VP8_EFLAG_FORCE_ARF (1<<24)

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 VP8_EFLAG_NO_UPD_ENTROPY (1<<20)

Disable entropy update.

When this flag is set, the encoder will not update its internal entropy model based on the entropy of this frame.

## Typedef Documentation

typedef enum vpx_scaling_mode_1d VPX_SCALING_MODE

vpx 1-D scaling mode

This set of constants define 1-D vpx scaling modes

typedef struct vpx_roi_map vpx_roi_map_t

vpx region of interest map

These defines the data structures for the region of interest map

typedef struct vpx_active_map vpx_active_map_t

vpx active region map

These defines the data structures for active region map

typedef struct vpx_scaling_mode vpx_scaling_mode_t

vpx image scaling mode

This defines the data structure for image scaling mode

typedef struct vpx_svc_parameters vpx_svc_parameters_t

vp9 svc parameters

This defines parameters for svc encoding.

## Enumeration Type Documentation

enum vp8e_enc_control_id

VP8 encoder control functions.

This set of macros define the control functions available for the VP8 encoder interface.

See also
  vpx_codec_control

Enumerator
VP8E_UPD_ENTROPY | 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 | control function to set encoder scaling mode
VP8E_SET_CPUUSED | 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_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 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
VP8E_SET_CQ_LEVEL | 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_MAX_INTRA_BITRATE_PCT | 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.

enum vpx_scaling_mode_1d

vpx 1-D scaling mode

This set of constants define 1-D vpx scaling modes

enum vp8e_token_partitions

VP8 token partition mode.

This defines VP8 partitioning mode for compressed data, i.e., the number of sub-streams in the bitstream. Used for parallelized decoding.

enum vp8e_tuning

VP8 model tuning parameters.

Changes the encoder to tune for certain types of input material.