WebM VP8 Codec SDK

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

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

## Modules
| WebM VP8 Encoder
| WebM VP8 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 = 1 << 4, 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

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.

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

typedef struct vpx_ref_frame vpx_ref_frame_t

reference frame data struct

Define the data struct to access vp8 reference frames.

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

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 | set the reference frames to color for each macroblock
VP8_SET_DBG_COLOR_MB_MODES | set which macro block modes to color
VP8_SET_DBG_COLOR_B_MODES | set which blocks modes to color
VP8_SET_DBG_DISPLAY_MV | set which motion vector modes to draw
VP9_GET_REFERENCE | get a pointer to a reference frame

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)

enum vpx_ref_frame_type

reference frame type

The set of macros define the type of VP8 reference frames