VP8

VP8 is a 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. More...

Modules

 WebM VP8/VP9 Encoder
 
 WebM VP8/VP9 Decoder
 

Files

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

Classes

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...
 
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 , VP9_GET_REFERENCE = 128 ,
  VP8_COMMON_CTRL_ID_MAX , VP8_DECODER_CTRL_ID_START = 256 , 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_MFQE = 1 << 3 , 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 , VP8_LAST_FRAME = 1 ,
  VP8_GOLD_FRAME = 2 , VP8_ALTR_FRAME = 4
}
 reference frame type More...
 
enum  vp8_com_control_id {
  VP8_SET_REFERENCE = 1 , VP8_COPY_REFERENCE = 2 , VP8_SET_POSTPROC = 3 , VP9_GET_REFERENCE = 128 ,
  VP8_COMMON_CTRL_ID_MAX , VP8_DECODER_CTRL_ID_START = 256 , 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_MFQE = 1 << 3 , 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 , VP8_LAST_FRAME = 1 ,
  VP8_GOLD_FRAME = 2 , VP8_ALTR_FRAME = 4
}
 reference frame type More...
 

Functions

 VPX_CTRL_USE_TYPE (VP8_SET_REFERENCE, vpx_ref_frame_t *) VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE
 vp8 decoder control function parameter type More...
 
vpx_ref_frame_tVPX_CTRL_USE_TYPE (VP8_SET_POSTPROC, vp8_postproc_cfg_t *) VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_REF_FRAME
 
vpx_ref_frame_t int VPX_CTRL_USE_TYPE (VP8_SET_DBG_COLOR_MB_MODES, int) VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_B_MODES
 
vpx_ref_frame_t int int VPX_CTRL_USE_TYPE (VP8_SET_DBG_DISPLAY_MV, int) VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE
 

Detailed Description

VP8 is a 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.

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:

Typedef Documentation

◆ vp8_postproc_cfg_t [1/2]

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.

◆ vp8_postproc_cfg_t [2/2]

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.

◆ vp9_ref_frame_t [1/2]

VP9 specific reference frame data struct.

Define the data struct to access vp9 reference frames.

◆ vp9_ref_frame_t [2/2]

VP9 specific reference frame data struct.

Define the data struct to access vp9 reference frames.

◆ vpx_ref_frame_t [1/2]

reference frame data struct

Define the data struct to access vp8 reference frames.

◆ vpx_ref_frame_t [2/2]

reference frame data struct

Define the data struct to access vp8 reference frames.

◆ vpx_ref_frame_type_t [1/2]

reference frame type

The set of macros define the type of VP8 reference frames

◆ vpx_ref_frame_type_t [2/2]

reference frame type

The set of macros define the type of VP8 reference frames

Enumeration Type Documentation

◆ vp8_com_control_id [1/2]

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

VP9_GET_REFERENCE 

get a pointer to a reference frame

VP8_COMMON_CTRL_ID_MAX 
VP8_DECODER_CTRL_ID_START 
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

VP8_COMMON_CTRL_ID_MAX 
VP8_DECODER_CTRL_ID_START 

◆ vp8_com_control_id [2/2]

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

VP9_GET_REFERENCE 

get a pointer to a reference frame

VP8_COMMON_CTRL_ID_MAX 
VP8_DECODER_CTRL_ID_START 
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

VP8_COMMON_CTRL_ID_MAX 
VP8_DECODER_CTRL_ID_START 

◆ vp8_postproc_level [1/2]

post process flags

The set of macros define VP8 decoder post processing flags

Enumerator
VP8_NOFILTERING 
VP8_DEBLOCK 
VP8_DEMACROBLOCK 
VP8_ADDNOISE 
VP8_MFQE 
VP8_NOFILTERING 
VP8_DEBLOCK 
VP8_DEMACROBLOCK 
VP8_ADDNOISE 
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)

VP8_MFQE 

◆ vp8_postproc_level [2/2]

post process flags

The set of macros define VP8 decoder post processing flags

Enumerator
VP8_NOFILTERING 
VP8_DEBLOCK 
VP8_DEMACROBLOCK 
VP8_ADDNOISE 
VP8_MFQE 
VP8_NOFILTERING 
VP8_DEBLOCK 
VP8_DEMACROBLOCK 
VP8_ADDNOISE 
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)

VP8_MFQE 

◆ vpx_ref_frame_type [1/2]

reference frame type

The set of macros define the type of VP8 reference frames

Enumerator
VP8_LAST_FRAME 
VP8_GOLD_FRAME 
VP8_ALTR_FRAME 
VP8_LAST_FRAME 
VP8_GOLD_FRAME 
VP8_ALTR_FRAME 

◆ vpx_ref_frame_type [2/2]

reference frame type

The set of macros define the type of VP8 reference frames

Enumerator
VP8_LAST_FRAME 
VP8_GOLD_FRAME 
VP8_ALTR_FRAME 
VP8_LAST_FRAME 
VP8_GOLD_FRAME 
VP8_ALTR_FRAME 

Function Documentation

◆ VPX_CTRL_USE_TYPE() [1/4]

vpx_ref_frame_t int VPX_CTRL_USE_TYPE ( VP8_SET_DBG_COLOR_MB_MODES  ,
int   
)

◆ VPX_CTRL_USE_TYPE() [2/4]

vpx_ref_frame_t int int VPX_CTRL_USE_TYPE ( VP8_SET_DBG_DISPLAY_MV  ,
int   
)

◆ VPX_CTRL_USE_TYPE() [3/4]

vpx_ref_frame_t* VPX_CTRL_USE_TYPE ( VP8_SET_POSTPROC  ,
vp8_postproc_cfg_t  
)

◆ VPX_CTRL_USE_TYPE() [4/4]

VPX_CTRL_USE_TYPE ( VP8_SET_REFERENCE  ,
vpx_ref_frame_t  
)

vp8 decoder control function parameter type

defines the data type for each of VP8 decoder control function requires