VP8 Codec
CODEC OVERVIEW
VP8 is an open source, royalty-free, video codec standardized by Internet Engineering Task Force (IETF), as RFC 6386, in the year 2011. It has been made available by Google under BSD license and is the default video codec in the Google WebRTC application. The codec operates on 8-bit YUV 420 progressive scans with resolutions up to 4K. The Encoder has an inhenrent support for multi-core implementation (up to 8 cores) and has an in-loop deblocking filter. The encoding complexity can be controlled using the cpu-use parameter which provides a lot of flexibility for real-time applications. The Decoder supports packet loss concealment. VP8 codec can be used in a wide range of applications such as video-conferencing, streaming, and storage applications.
SALIENT FEATURES
- Based on standard version VP8 1.1.0.
- Optimized ASM/C implementation.
- Re-entrant implementation
- C-callable APIs
- Frame width in the range of 16 to 720 pixels supported.
- Frame height in the range of 16 to 1280 pixels supported.
- Support for generation of Key Frame on demand.
- Support for configuring the Key Frame interval at init-time.
- Support for all the profiles defined in the standard.
- Support for following settings for cpu_used: 5, 7, 9, and 15 (Encoder).
- Support for up to 3-core implementation (Encoder).
- Support for CBR and VBR mode of operation.
- Support for the inherent packet loss concealment algorithm.
- IVIDENC2/IVIDDEC2 interface standard complaint.
TESTING FEATURES
- Implementation is tested for bit-compliance with the VP8 version 1.1.0.
- Implementation is tested for wide range of non-standard test vectors for all resolutions.
- Tested with error streams.
- Tested with 3gpp error pattern corrupted streams.
- Tested for resource usage (DMA channels, params etc)
- Tested for illegal memory access by the module.
- Module is fully interruptible.
- Tested for compliance with register preservation requirements
- Tested for Input buffer corruption
- Tested for I/O buffer alignment requirements
- Tested for multi-instance implementation.
- Tested for multi-core implementation.
- Tested with scratch contamination at frame boundaries
- Tested for 100% code coverage
- Range validation of all API parameters
- Validated on TI C6678 EVM.