VP8
[Video Codecs]


Detailed Description

The VP8 video codec.

Example Usage:

   sc = Flix2_AddCodec(&codec, flix, FE2_CODEC_VP8);
   // Use 450kbit
   if(sc == ON2_OK)
       sc = Flix2_CodecSetParam(codec, FE2_VP8_BITRATE, 450.0);


Codec name

#define FE2_CODEC_VP8
 Codec name for use with Flix2_AddCodec().

General VP8 settings

#define FE2_VP8_BITRATE
 Alias for FE2_CODECPARAM_BITRATE.
#define FE2_VP8_KFINTTYPE
 Alias for FE2_VCODECPARAM_KFINTTYPE.
#define FE2_VP8_KFFREQ
 Alias for FE2_VCODECPARAM_KFFREQ.
#define FE2_VP8_RC_MODE
 Alias for FE2_VCODECPARAM_RC_MODE.
#define FE2_VP8_CXMODE
 VP8 compress mode.
#define FE2_VP8_SHARPNESS
 Codec parameter for sharpness.
#define FE2_VP8_NOISE_REDUCTION
 Controls encoder noise reduction preprocessing.

Advanced VP8 settings

#define FE2_VP8_UNDERSHOOT_PCT
 Codec parameter for undershoot percentage.
#define FE2_VP8_OVERSHOOT_PCT
 Codec parameter for undershoot percentage.
#define FE2_VP8_MIN_Q
 Codec parameter for minimum quantizer.
#define FE2_VP8_MAX_Q
 Codec parameter for maximum quantizer.
#define FE2_VP8_DROP_THRESH
 Threshold controlling encoder frame dropping.

CBR-Specific

#define FE2_VP8_STREAM_INITIAL_BUFFER
 Seconds of preload that are necessary before starting playback.
#define FE2_VP8_STREAM_OPTIMAL_BUFFER
 Buffer size that the encoder strives to reach or maintain in case of specific frame overshoots.
#define FE2_VP8_STREAM_MAX_BUFFER
 The maximum size of the buffer, in seconds.

VBR-Specific

#define FE2_VP8_2PASS_MIN_SECTION
 VBR_2PASSControl minimum section datarate
#define FE2_VP8_2PASS_MAX_SECTION
 VBR_2PASSControl maximum section datarate

Defines

#define FE2_VP8_PROFILE
 Bitstream profile.
#define FE2_VP8_ALTREF
 Enable the use of alternate reference frames.
#define FE2_VP8_AR_MAX_FRAMES
 Max number of frames blurred creating alternate reference.
#define FE2_VP8_AR_TYPE
 Filter type to use w/alternate reference.
#define FE2_VP8_AR_STRENGTH
 Filter strength for the alternate reference.
#define FE2_VP8_MB_STATIC_THRESHOLD
 Threshold for macroblocks treated static.
#define FE2_VP8_TOKEN_PARTITIONS
 Number of token partitions.
#define FE2_VP8_LAG
 Allow lagged encoding If set, this value allows the encoder to consume a number of input frames before producing output frames. This allows the encoder to base decisions for the current frame on future frames.
#define FE2_VP8_THREADS
 Number of threads to use A reasonable selection would be the number of cores on the system.

Define Documentation

#define FE2_CODEC_VP8

Codec name for use with Flix2_AddCodec().

Definition at line 40 of file vp8.h.

#define FE2_VP8_2PASS_MAX_SECTION

VBR_2PASSControl maximum section datarate

This value is given as a percentage. The highest datarate, i.e., $\textit{FE2\_VP8\_2PASS\_MAX\_SECTION}\% \times \textit{FE2\_VP8\_BITRATE}$, that can be streamed, and also the highest datarate that the encoder will allow, no matter how difficult the section is.

Note:
Default: 400

Definition at line 198 of file vp8.h.

#define FE2_VP8_2PASS_MIN_SECTION

VBR_2PASSControl minimum section datarate

This value is given as a percentage. The lowest datarate, i.e., $\textit{FE2\_VP8\_2PASS\_MIN\_SECTION}\% \times \textit{FE2\_VP8\_BITRATE}$, that the encoder will allow for any section, no matter how easy the section is. This value is used to prevent difficult sections from stealing too many bits from easy sections.

Note:
Default: 40

Definition at line 188 of file vp8.h.

#define FE2_VP8_ALTREF

Enable the use of alternate reference frames.

Note:
Default: 0

Definition at line 211 of file vp8.h.

#define FE2_VP8_AR_MAX_FRAMES

Max number of frames blurred creating alternate reference.

Note:
Valid range: [0,25]
Default: 0

Definition at line 216 of file vp8.h.

#define FE2_VP8_AR_STRENGTH

Filter strength for the alternate reference.

Note:
Valid range: [0,6]
Default: 0

Definition at line 225 of file vp8.h.

#define FE2_VP8_AR_TYPE

Filter type to use w/alternate reference.

Note:
Default: 0

Definition at line 220 of file vp8.h.

#define FE2_VP8_BITRATE

Alias for FE2_CODECPARAM_BITRATE.

Codec parameter for stream bitrate.

Compressed stream bitrate in kbits/sec.

Note:
Default: 448

Definition at line 52 of file vp8.h.

#define FE2_VP8_CXMODE

VP8 compress mode.

Valid values are defined by FE2_CompressMode

Note:
Default: COMPRESSMODE_GOOD

Definition at line 77 of file vp8.h.

#define FE2_VP8_DROP_THRESH

Threshold controlling encoder frame dropping.

A value of 0 disables frame dropping. Larger values will increase the likelihood frames will be dropped to achieve data rate constraints. Recommended values are 0 for VBR mode and 70 for CBR mode.

Note:
Valid range: [0,100]
Default: 0

Definition at line 151 of file vp8.h.

#define FE2_VP8_KFFREQ

Alias for FE2_VCODECPARAM_KFFREQ.

Video codec parameter for keyframe frequency.

Value is in video frames. The interpretation depends on the setting of FE2_VCODECPARAM_KFINTTYPE

See also:
FE2_VideoKeyframeTypes
Note:
Default: $12.0 \times output_fps$ or 360 frames if the framerate is unknown

Definition at line 65 of file vp8.h.

#define FE2_VP8_KFINTTYPE

Alias for FE2_VCODECPARAM_KFINTTYPE.

Video codec parameter for the keyframe interval type.

Valid values are defined by FE2_VideoKeyframeTypes.

Note:
Default: MAX_KEYFRAMES

Definition at line 58 of file vp8.h.

#define FE2_VP8_LAG

Allow lagged encoding If set, this value allows the encoder to consume a number of input frames before producing output frames. This allows the encoder to base decisions for the current frame on future frames.

Note:
Valid range: [0,25]
Default: 0

Definition at line 245 of file vp8.h.

#define FE2_VP8_MAX_Q

Codec parameter for maximum quantizer.

Determines the quality of the output. A lower maximum number produces higher quality output.

Note:
Valid range: [0,63]
Default: 63
Attention:
Setting this value too low will likely cause the encoder to miss (i.e., overshoot) the target datarate specified by FE2_VP8_BITRATE and, should FE2_VP8_DROP_THRESH be enabled, result in a large amount of dropped frames. The table mentioned above should be used as a guide in choosing a reasonable value based on the bitrate.

Definition at line 140 of file vp8.h.

#define FE2_VP8_MB_STATIC_THRESHOLD

Threshold for macroblocks treated static.

Note:
Default: 0

Definition at line 229 of file vp8.h.

#define FE2_VP8_MIN_Q

Codec parameter for minimum quantizer.

Determines the quality of the output. A lower minimum number produces higher quality output.

Note:
Valid range: [0,63]
Default: 4

Definition at line 126 of file vp8.h.

#define FE2_VP8_NOISE_REDUCTION

Controls encoder noise reduction preprocessing.

Determines the level of noise filtering to apply in the preprocessor. 0 is no preprocessing, 6 is extreme preprocessing.

Note:
Valid range: [0,6]
Setting this value to anything but 0 will result in slowing down the compression speed.
Default:

Definition at line 98 of file vp8.h.

#define FE2_VP8_OVERSHOOT_PCT

Codec parameter for undershoot percentage.

This value is given as a percentage.

Note:
Default: 200

Definition at line 118 of file vp8.h.

#define FE2_VP8_PROFILE

Bitstream profile.

Larger values may be more appropriate for HD material when targeting playback on lower end machines. Similar to VP6_S

Note:
Valid range: [0,3]
Default: 0

Definition at line 207 of file vp8.h.

#define FE2_VP8_RC_MODE

Alias for FE2_VCODECPARAM_RC_MODE.

Video codec parameter for the rate control mode.

Valid values are defined by FE2_VideoBitrateControls.

Note:
Default: VBR_2PASSControl

Definition at line 71 of file vp8.h.

#define FE2_VP8_SHARPNESS

Codec parameter for sharpness.

Controls the sharpness of the image in the output. This setting does not impact any other setting and is largely a matter of personal preference. A low sharpness setting will result in fewer visible artifacts but may blur the image somewhat; a high sharpness will result in a sharper image but may result in more visible artifacts.

Note:
Valid range: [0,7]
Default: 0

Definition at line 88 of file vp8.h.

#define FE2_VP8_STREAM_INITIAL_BUFFER

Seconds of preload that are necessary before starting playback.

The buffer is used to maintain a consistent datarate and minimize playback interruption.

Note:
Default: 6
Attention:
Valid for CBR only

Definition at line 163 of file vp8.h.

#define FE2_VP8_STREAM_MAX_BUFFER

The maximum size of the buffer, in seconds.

Attention:
Valid for CBR only

Definition at line 173 of file vp8.h.

#define FE2_VP8_STREAM_OPTIMAL_BUFFER

Buffer size that the encoder strives to reach or maintain in case of specific frame overshoots.

Note:
Default: 10
Attention:
Valid for CBR only

Definition at line 169 of file vp8.h.

#define FE2_VP8_THREADS

Number of threads to use A reasonable selection would be the number of cores on the system.

Note:
Default: 1

Definition at line 250 of file vp8.h.

#define FE2_VP8_TOKEN_PARTITIONS

Number of token partitions.

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

Note:
Valid range: {1,2,4,8}
Default: 1

Definition at line 237 of file vp8.h.

#define FE2_VP8_UNDERSHOOT_PCT

Codec parameter for undershoot percentage.

This value is given as a percentage. Creates output that targets a slightly lower datarate so there are bits available in the buffer to improve difficult sections.

Note:
Default: 95

Definition at line 112 of file vp8.h.


On2 Technologies, Inc Flix Engine Linux documentation, generated on Tue Nov 2 16:53:00 2010 by doxygen 1.5.5