WebM Codec SDK: VP8

WebM Codec SDK

Modules | Files | Data Structures | Typedefs | Enumerations
VP8
Supported Codecs

## Modules
| WebM VP8/VP9 Encoder
| WebM VP8/VP9 Decoder

## Files
file | vp8.h
| Provides controls common to both the VP8 encoder and decoder.

## Data Structures
struct | vp8_postproc_cfg
| post process flags More...
struct | vpx_ref_frame
| reference frame data struct More...
struct | vp9_ref_frame
| VP9 specific reference frame data struct. More...

## Typedefs
typedef struct vp8_postproc_cfg | vp8_postproc_cfg_t
| post process flags More...
typedef enum vpx_ref_frame_type | vpx_ref_frame_type_t
| reference frame type More...
typedef struct vpx_ref_frame | vpx_ref_frame_t
| reference frame data struct More...
typedef struct vp9_ref_frame | vp9_ref_frame_t
| VP9 specific reference frame data struct. More...

## Enumerations
enum | vp8_com_control_id { VP8_SET_REFERENCE = 1, VP8_COPY_REFERENCE = 2, VP8_SET_POSTPROC = 3, VP8_SET_DBG_COLOR_REF_FRAME = 4, VP8_SET_DBG_COLOR_MB_MODES = 5, VP8_SET_DBG_COLOR_B_MODES = 6, VP8_SET_DBG_DISPLAY_MV = 7, VP9_GET_REFERENCE = 128, VP8_COMMON_CTRL_ID_MAX, VP8_DECODER_CTRL_ID_START = 256 }
| Control functions. More...
enum | vp8_postproc_level { VP8_NOFILTERING = 0, VP8_DEBLOCK = 1 << 0, VP8_DEMACROBLOCK = 1 << 1, VP8_ADDNOISE = 1 << 2, VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, VP8_DEBUG_TXT_MBLK_MODES, VP8_DEBUG_TXT_DC_DIFF = 1 << 5, VP8_DEBUG_TXT_RATE_INFO = 1 << 6, VP8_MFQE = 1 << 10 }
| post process flags More...
enum | vpx_ref_frame_type { VP8_LAST_FRAME = 1, VP8_GOLD_FRAME = 2, VP8_ALTR_FRAME = 4 }
| reference frame type More...

## Detailed Description

VP8 is vpx'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

## Typedef Documentation

## ◆ vp8_postproc_cfg_t

typedef struct vp8_postproc_cfg vp8_postproc_cfg_t

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 VP8_DEBLOCK and deblocking_level to 1.

## ◆ vpx_ref_frame_type_t

typedef enum vpx_ref_frame_type vpx_ref_frame_type_t

reference frame type

The set of macros define the type of VP8 reference frames

## ◆ vpx_ref_frame_t

typedef struct vpx_ref_frame vpx_ref_frame_t

reference frame data struct

Define the data struct to access vp8 reference frames.

## ◆ vp9_ref_frame_t

typedef struct vp9_ref_frame vp9_ref_frame_t

VP9 specific reference frame data struct.

Define the data struct to access vp9 reference frames.

## Enumeration Type Documentation

## ◆ vp8_com_control_id

enum vp8_com_control_id

Control functions.

The set of macros define the control functions of VP8 interface

Enumerator
VP8_SET_REFERENCE | pass in an external frame into decoder to be used as reference frame
VP8_COPY_REFERENCE | get a copy of reference frame from the decoder
VP8_SET_POSTPROC | set the decoder's post processing settings
VP8_SET_DBG_COLOR_REF_FRAME | Deprecated:
VP8_SET_DBG_COLOR_MB_MODES | Deprecated:
VP8_SET_DBG_COLOR_B_MODES | Deprecated:
VP8_SET_DBG_DISPLAY_MV | Deprecated:
VP9_GET_REFERENCE | get a pointer to a reference frame

## ◆ vp8_postproc_level

enum vp8_postproc_level

post process flags

The set of macros define VP8 decoder post processing flags

Enumerator
VP8_DEBUG_TXT_FRAME_INFO | print frame information
VP8_DEBUG_TXT_MBLK_MODES | print macro block modes over each macro block
VP8_DEBUG_TXT_DC_DIFF | print dc diff for each macro block
VP8_DEBUG_TXT_RATE_INFO | print video rate info (encoder only)

## ◆ vpx_ref_frame_type

enum vpx_ref_frame_type

reference frame type

The set of macros define the type of VP8 reference frames